IBM General Parallel File System (GPFS)

Introduction

The General Parallel File System (GPFS) is a high-performance clustered file system developed by IBM. It can be deployed in shared-disk or shared-nothing distributed parallel modes. It is used by many of the world's largest commercial companies, as well as some of the supercomputers on the Top 500 List. For example, GPFS was the filesystem of the ASC Purple Supercomputer which was composed of more than 12,000 processors and has 2 petabytes of total disk storage spanning more than 11,000 disks.

In common with typical cluster filesystems, GPFS provides concurrent high-speed file access to applications executing on multiple nodes of clusters. It can be used with AIX 5L clusters, Linux clusters, on Microsoft Windows Server, or a heterogeneous cluster of AIX, Linux and Windows nodes. In addition to providing filesystem storage capabilities, GPFS provides tools for management and administration of the GPFS cluster and allows for shared access to file systems from remote GPFS clusters.+

GPFS has been available on IBM's AIX since 1998, on Linux since 2001, and on Windows Server since 2008, and it is offered as part of the IBM System Cluster 1350. The most recent release of GPFS 3.5 offers Active File Management to enable asynchronous access and control of local and remote files, thus allowing for global file collaboration.

Below you'll find a complete list of all the GPFS commands, the same are located under /usr/lpp/mmfs/bin, enjoy!

Working with the Cluster


CommandDescription
mmcrclusterCreates GPFS Cluster

Usage: mmcrfs Device {″DiskDesc[;DiskDesc...]″ | -F DescFile} [-A {yes | no | automount}] [-D {nfs4 | posix}] [-B BlockSize] [-E {yes | no}] [-j {cluster | scatter}] [-k {posix | nfs4 | all}] [-K {no | whenpossible | always}] [-L LogFileSize] [-m DefaultMetadataReplicas] [-M MaxMetadataReplicas] [-n NumNodes] [-N NumInodes[:NumInodesToPreallocate]] [-Q {yes | no}] [-r DefaultDataReplicas] [-R MaxDataReplicas] [-S {yes | no}] [-t DriveLetter] [-T MountPoint] [-v {yes | no}] [-z {yes | no}] [--version Version]
mmlsclusterDisplays GPFS cluster configuration information

Usage: mmlscluster [--cnfs]
mmlsconfigDisplays the configuration data for a GPFS cluster

Usage: mmlsconfig <attribute>
mmgetstateDisplays the state of the GPFS daemon on one or more nodes

Usage: mmgetstate [-L] [-s] [-v] [-a | -N {Node[,Node...] | NodeFile | NodeClass}]
mmaddnodeAdds nodes to a GPFS cluster

Usage: mmaddnode -N {NodeDesc[,NodeDesc...] | NodeFile}
mmchlicenseDesignates appropriate GPFS licenses

Usage: mmchlicense {server | client} [--accept] -N {Node[,Node...] | NodeFile | NodeClass}
mmlslicenseDisplays information about the GPFS node licensing designation.

Usage: mmlslicense [-L]
mmchnodeChanges node attributes

Usage: mmchnode change-options -N{Node[,Node...] | NodeFile | NodeClass} Or,
Usage: mmchnode {-S Filename | --spec-file=Filename}
mmdelnodeDeletes nodes from a GPFS cluster

Usage: mmdelnode {-a | -N Node[,Node...] | NodeFile | NodeClass}
mmchcluster or mmchconfigChanges the GPFS cluster configuration data
mmlsmgrDisplays the file system manager node

Usage: mmlsmgr [Device [Device...]] Or,Usage: mmlsmgr -C ClusterName Or,Usage: mmlsmgr -c
mmchmgrChanges the file system manager node

Usage: mmchmgr {Device | -c} [Node]
mmstartupStarts GPFS cluster

Usage: mmstartup [-a | -N {Node[,Node...] | NodeFile | NodeClass}] [-E EnvVar=value ...]
mmshutdownStops GPFS cluster

Usage: mmshutdown [-t UnmountTimeout ] [-a | -N {Node[,Node...] | NodeFile | NodeClass}]
mmrefreshPlaces the most recent GPFS cluster configuration data files on the specified nodes
mmsdrrestoreRestores the latest GPFS system files on the specified nodes.
mmsdrbackupPerforms a backup of the GPFS configuration data.
mmbackupconfigBacking up file system configuration information

Usage: mmbackupconfig Device -o OutputFile
mmrestoreconfigRestores file system configuration information

Usage: mmrestoreconfig Device -i InputFile [-I {test | yes | continue }] [-Q {yes | no}] [-W NewDeviceName] [-z {yes | no}] Or,Usage: mmrestoreconfig Device -i InputFile -F configFile Or,
Usage: mmrestoreconfig Device -i InputFile -I continue

Working with File Systems


CommandDescription
mmcrfsCreates a file system

Usage: mmcrfs Device {″DiskDesc[;DiskDesc...]″ | -F DescFile} [-A {yes | no | automount}] [-D {nfs4 | posix}] [-B BlockSize] [-E {yes | no}] [-j {cluster | scatter}] [-k {posix | nfs4 | all}] [-K {no | whenpossible | always}] [-L LogFileSize] [-m DefaultMetadataReplicas] [-M MaxMetadataReplicas] [-n NumNodes] [-N NumInodes[:NumInodesToPreallocate]] [-Q {yes | no}] [-r DefaultDataReplicas] [-R MaxDataReplicas] [-S {yes | no}] [-t DriveLetter] [-T MountPoint] [-v {yes | no}] [-z {yes | no}] [--version Version]
mmmountMounts a file system

Usage: mmmount {Device | DefaultMountPoint | DefaultDriveLetter | all | all_local | all_remote} [-o MountOptions] [-a | -N {Node[,Node...] | NodeFile | NodeClass}] Or,Usage: mmmount Device {MountPoint | DriveLetter } [-o MountOptions] [-a | -N {Node[,Node...] | NodeFile | NodeClass}]
mmumountUmounts a file system

Usage: mmumount {Device | MountPoint | DriveLetter | all | all_local | all_remote} [-f ] [-a | -N {Node[,Node...]| NodeFile | NodeClass}] Or, 
Usage: mmumount Device -f -C {all_remote | ClusterName} [-N Node[,Node...]]
mmdelfsDeletes a file system

Usage: mmdelfs Device [-p]
mmdfQueries available file space on a GPFS file system

Usage: mmdf Device [-d | -F | -m] [-P PoolName]
mmlsmountDetermines which nodes have a file system mounted

Usage: mmlsmount {Device | all | all_local | all_remote} [-L ] [-C {all | all_remote | ClusterName[,ClusterName...] } ]
mmfsckChecks and repairs a file system

Usage: mmfsck Device [-n | -y] [-c | -o] [-t Directory] [ -v | -V] [-N {Node[,Node...] | NodeFile | NodeClass}]
mmlsfsListing file system attributes

Usage: mmlsfs {Device | all | all_local | all_remote} [-A] [-a] [-B] [-D] [-d] [-E] [-F] [-f] [-I] [-i] [-j] [-k] [-K][-L] [-M] [-m] [-n] [-o] [-P] [-Q] [-R] [-r] [-S] [-t] [-T] [-u] [-V] [-z]
mmchfsModifies file system attributes

Usage: mmchfs Device [-A {yes | no | automount}] [-E {yes | no}] [-D {nfs4 | posix}] [-F MaxNumInodes[:NumInodesToPreallocate]] [-k {posix | nfs4 | all}] [-K {no | whenpossible | always}] [-m DefaultMetadataReplicas] [-n NumberOfNodes] [-o MountOptions] [-Q {yes | no}] [-r DefaultDataReplicas] [-S {yes | no} ] [-T Mountpoint] [-t DriveLetter] [-V {full | compat}] [-z {yes | no}] Or, 
Usage: mmchfs Device [-W NewDeviceName]
mmlsattrQuerying file replication attributes

Usage: mmlsattr [-l] [-L] FileName [FileName...]
mmchattrChanging file replication attributes

Usage: mmchattr [-m MetadataReplicas] [-M MaxMetadataReplicas] [-r DataReplicas] [-R MaxDataReplicas] [-P DataPoolName] [-D {yes | no} ] [-I {yes | defer}] [-i {yes | no}] [-l] Filename [Filename...]
mmrestripefsRestriping a GPFS file system

Usage: mmrestripefile {-b | -m | -p | -r} {-F FilenameFile | Filename [Filename...]}
mmdefragfsQuerying and reducing file system fragmentation

Usage: mmdefragfs Device [-i] [-u BlkUtilPct] [-P PoolName] [-N {Node[,Node...] | NodeFile | NodeClass}]
mmbackupBacking up a file system

Usage: mmbackup {Device | Directory} [-f] [-g GlobalWorkDirectory] [-N {Node[,Node...] | NodeFile | NodeClass}] [-s LocalWorkDirectory] [-S SnapshotName] [-t {full | incremental}]

Working with Snapshots


CommandDescription
mmcrsnapshotCreates a snapshot of an entire GPFS file system at a single point in time

Usage: mmcrsnapshot Device Directory
mmdelsnapshotDeletes a GPFS snapshot

Usage: mmdelsnapshot Device Directory [-N {Node [,Node...] | NodeFile | NodeClass}]
mmrestorefsRestores a file system from a GPFS snapshot

Usage: mmrestorefs Device Directory [-c]
mmlssnapshotDisplays GPFS snapshot information for the specified file system

Usage: mmlssnapshot Device [-d] [-Q]
mmsnapdirCreates and deletes invisible directories that connect to the snapshots of a GPFS file system, and changes the name of the snapshots subdirectory

Usage: mmsnapdir Device {[-r | -a] [-s SnapDirName]} Or,
Usage: mmsnapdir Device [-q]

Working with Filesets


CommandDescription
mmcrfilesetCreates a GPFS fileset

Usage: mmcrfileset Device FilesetName [-t Comment]
mmchfilesetChanges the attributes of a GPFS fileset

Usage: mmchfileset Device {FilesetName | -J JunctionPath} {[-j NewFilesetName] | [-t NewComment]}
mmlsfilesetDisplays status and attributes of GPFS filesets

Usage: mmlsfileset Device {[[Fileset [,Fileset ...]] [-J Junction [,Junction ...]] | -F FileName} [-L] [-d] [-i]
mmdelfilesetDeletes a GPFS fileset

Usage: mmdelfileset Device FilesetName [-f]
mmrestripefileRebalances or restores the replication factor of the specified files

Usage: mmrestripefs Device {-b | -m | -p | -r | -R} [-N {Node[,Node...] | NodeFile | NodeClass}] [-P PoolName]
mmlinkfilesetCreates a junction that references the root directory of a GPFS fileset

Usage: mmlinkfileset Device FilesetName [-J JunctionPath]
mmunlinkfilesetRemoves the junction to a GPFS fileset

Usage: mmunlinkfileset Device {FilesetName | -J JunctionPath} [-f]

Working with Disks


CommandDescription
mmcrnsdCreates network shared disk servers

Usage: mmcrnsd -F DescFile [-v {yes |no}]
mmlsnsdDisplaying disks in a GPFS cluster

Usage: mmlsnsd [-a | -F | -f Device | -d ″DiskName[;DiskName...]″ ] [-L | -m | -M | -X] [-v]
mmdelnsdDeletes NSDs from the GPFS cluster

Usage: mmdelnsd {″DiskName[;DiskName...]″ | -F DiskFile}
mmadddiskAdding disks to a file system

Usage: mmadddisk Device {″DiskDesc[;DiskDesc...]″ | -F DescFile} [-a] [-r] [-v {yes | no}] [-N {Node[,Node...] | NodeFile | NodeClass}]
mmdeldiskDeleting disks to a file system

Usage: mmdeldisk Device {″DiskName[;DiskName...]″ | -F DescFile} [-a] [-c] [-m | -r | -b] [-N {Node[,Node...] | NodeFile | NodeClass}]
mmrpldiskReplacing disks in a GPFS file system

Usage: mmrpldisk Device DiskName {DiskDesc | -F DescFile} [-v {yes | no}] [-N {Node[,Node...] | NodeFile | NodeClass}]
mmlsdiskDisplaying GPFS disk states

Usage: mmlsdisk Device [-d ″DiskName[;DiskName...]″] [-e] [-L] Or,Usage: mmlsdisk Device [-d ″DiskName[;DiskName...]″] {-m | -M}
mmchdiskChanging GPFS disk states and parameters

Usage: mmchdisk Device {suspend | resume | stop | start | change} -d ″DiskDesc [;DiskDesc...]″ | -F {DescFile} [-N {Node [,Node...] | NodeFile | NodeClass}] Or, 
Usage: mmchdisk Device {resume | start} -a [[-N {Node[,Node...] | NodeFile | NodeClass}]
mmchnsdChanging your NSD configuration

Usage: mmchnsd {″DiskDesc[;DiskDesc...]″ | -F DescFile}
mmnsddiscoverRediscovers paths to the specified network shared disks

Usage: mmnsddiscover [-a | -d ″Disk[;Disk...]″ | -F DiskFile] [-C ClusterName] [-N {Node[,Node...] | NodeFile | NodeClass}]
mmcrvsdCreates virtual shared disks for use by GPFS

Usage: mmcrvsd [-f FanoutNumber] [-y] [-c] -F DescFile

Working with Quotas


CommandDescription
mmcrfs or mmchfs -Q yesEnabling and disabling GPFS quota management
mmedquotaExplicitly establishing and changing quotas

Usage: mmedquota {-u [-p ProtoUser] User...| -g [-p ProtoGroup] Group... | -j [-p ProtoFileset ] Device:Fileset... | -d {-u User...| -g Group... | -j Device:Fileset...} | -t {-u | -g | -j}}
mmcheckquotaChecking quotas

Usage: mmcheckquota [-v] [-N {Node[,Node...] | NodeFile | NodeClass}] {Device [Device...] | -a} Or, 
Usage: mmcheckquota {-u UserQuotaFilename | -g GroupQuotaFileName | -j FilesetQuotaFilename} Device
mmdefquotaonEnabling default quota

Usage: mmdefquotaon [-u] [-g] [-j] [-v] [-d] {Device [Device... ] | -a}
mmdefedquotaDefine default quota

Usage: mmdefedquota {-u | -g | -j} Device
mmdefquotaoffDisable default quota

Usage: mmdefquotaoff [-u] [-g] [-j] [-v] {Device [Device...] | -a}
mmlsquotaListing quotas

Usage: mmlsquota [-u User | -g Group | -j Fileset] [-v | -q] [-e] [-C ClusterName] [Device [Device...]] Or, 
Usage: mmlsquota -d {-u | -g | -j} [-C ClusterName] [Device [Device...]]
mmquotaonActivating quota limit checking

Usage: mmquotaon [-u] [-g] [-j] [-v] {Device [Device...] | -a}
mmquotaoffDeactivating quota limit checking

Usage: mmquotaoff [-u] [-g] [-j] [-v] {Device [Device ...] | -a}
mmrepquotaCreating file system quota reports

Usage: mmrepquota [-e] [-g] [-q] [-u] [-n] [-v] [-j] {Device [Device...] | -a}

Working with ACLs


CommandDescription
mmputaclSetting traditional GPFS access control lists

Usage: mmputacl [-d] [-i InFilename] Filename
mmgetaclDisplaying traditional GPFS access control lists

Usage: mmgetacl [-d] [-o OutFilename] [-k {nfs4 |posix | native}] Filename
mmeditaclChanging traditional GPFS access control lists

Usage: mmeditacl [-d] [-k {nfs4 | posix | native}] Filename
mmdelaclDeleting traditional GPFS access control lists

Usage: mmdelacl [-d] Filename

Working with Remote Clusters


CommandDescription
mmauthManages secure access to GPFS file systems

Usage: mmauth genkey {new | commit | propagate [-N {Node[,Node...] | NodeFile | NodeClass}]} Or, 
Usage: mmauth add RemoteClusterName -k KeyFile -l CipherList Or, 
Usage: mmauth update RemoteClusterName -C NewClusterName -k KeyFile [-l CipherList] Or, 
Usage: mmauth delete {RemoteClusterName | all } Or,
Usage: mmauth grant {RemoteClusterName | all } -f { Device | all } [-a {rw | ro} ] [-r {uid:gid | no}] Or, 
Usage: mmauth deny {RemoteClusterName | all } -f { Device | all } Or,Usage: mmauth show [RemoteClusterName | all]
mmexportfsExports a file system into the cluster

Usage: mmexportfs {Device | all} -o ExportFilesysData
mmimportfsImports a file system into the cluster

Usage: mmimportfs {Device | all} -i ImportfsFile [-S ChangeSpecFile]
mmremoteclusterManages information about remote clusters

Usage: mmremotecluster add RemoteClusterName [-n ContactNodes] [-k KeyFile] Or, 
Usage: mmremotecluster update RemoteClusterName [-C NewClusterName] [-n ContactNodes] [-k KeyFile] Or,Usage: mmremotecluster delete {RemoteClusterName | all} Or,
Usage: mmremotecluster show [RemoteClusterName | all]
mmremotefsManages the information needed for mounting remote GPFS file systems

Usage: mmremotefs add Device -f RemoteDevice -C RemoteClusterName [-T MountPoint] [-t DriveLetter] [-A {yes | no | automount}] [-o MountOptions] Or, 
Usage: mmremotefs delete {Device | all | -C RemoteClusterName} Or, 
Usage: mmremotefs show [Device | all | -C RemoteClusterName] Or,
Usage: mmremotefs update Device [-f RemoteDevice] [-C RemoteClusterName] [-T MountPoint] [-t DriveLetter] [-A {yes | no | automount}] [-o MountOptions]

Miscellaneous


CommandDescription
mmaddcallbackRegisters a user-defined command into the GPFS system

Usage: mmaddcallback CallbackIdentifier --command CommandPathname --event Event[,Event...] [--priority Value][--async | --sync [--timeout Seconds] [--onerror Action]] [-N {Node[,Node...] | NodeFile | NodeClass}] [--parms ParmeterString ...]
mmdelcallbackDeletes one or more user-defined callbacks from the GPFS system

Usage: mmdelcallback CallbackIdentifier[,CallbackIdentifier...]
mmlscallbackLists callbacks that are currently registered in the GPFS system

Usage: mmlscallback [CallbackIdentifier[,CallbackIdentifier...]]
mmapplypolicyDeletes files or migrates file data between storage pools within a single file system in accordance with policy rules.

Usage: mmapplypolicy {Device | Directory} [-A IscanBuckets] [-a IscanThreads] [-B MaxFiles] [-D yyyy-mm-dd [@hh:mm[:ss]]] [-e] [-f FileListPrefix] [-g GlobalWorkDirectory] [-I {yes | defer | test | prepare}] [-i InputFileList] [-L n] [-M  name=value...] [-m ThreadLevel] [-N {all | mount | Node[,Node...] | NodeFile | NodeClass}] [-n DirThreadLevel] [-P PolicyFile] [-q] [-r FileListPathname...] [-S SnapshotName] [-s LocalWorkDirectory]
mmchpolicyEstablishes policy rules for a GPFS file system

Usage: mmchpolicy Device PolicyFileName [-t DescriptiveName ] [-I {yes | test} ]
mmlspolicyDisplays policy information

Usage: mmlspolicy Device [-L]
mmpmonMonitors GPFS performance on a per-node basis

Usage: mmpmon [-i CommandFile] [-d IntegerDelayValue] [-p] [-r IntegerRepeatValue] [-s] [-t IntegerTimeoutValue]
mmtracectlSets up and enables GPFS tracing

Usage: mmtracectl {--start | --stop | --off | --set} [--trace={io | all | def | ″Class Level [Class Level ...]″] [--trace-recycle={off | local | global | globalOnShutdown}] [--aix- trace-buffer-size=BufferSize] [--tracedev-buffer-size=BufferSize] [--tracedev-compression-level=Level] [--tracedev-overwrite-buffersize= BufferSize] [--tracedev-write-mode={blocking | overwrite}] [--trace-file-size=FileSize] [--trace-dispatch={yes | no}] [-N {Node [,Node...] | NodeFile | NodeClass}]
gpfs.snapTools to gather preliminary data when a GPFS problem is encountered

Usage: gpfs.snap [-c "CommandString"] [-d OutputDirectory] [-z] [-a | -N {Node[,Node...] | NodeFile | NodeClass}] [--check-space | --no-check-space | --check-space-only] [--exclude-aix-disk-attr] [--exclude-aix-lvm] [--exclude-net] [--exclude-merge-logs] [--mmdf]
mmfsadmExtracts data from GPFS without using locking, so that it can collect the data in the event of locking errors

Usage: TBD
mmfileidDetermine which files are located on areas of a disk that are damaged or considered to be suspect

Usage: mmfileid Device {-d DiskDesc|-F DescFile} [-o OutputFile] [-f NumThreads] [-t Directory] [-N {Node[,Node...]  | NodeFile | NodeClass}]
mmfsctlIssues a file system control request

Usage: mmfsctl Device {suspend | resume} Or,Usage: mmfsctl Device {exclude | include} {-d ″DiskName[;DiskName...]″ | -F DiskFile | -G FailureGroup} Or,
Usage: mmfsctl Device syncFSconfig {-n RemoteNodesFile | -C remoteClusterName} [-S SpecFile]
dshConcurrently runs commands on multiple nodes and hardware devices.

Usage: TBD


Specifying nodes as input to GPFS commands

Many GPFS commands accept a node or multiple nodes as part of their input, using the -N flag. Nodes
can be specified to GPFS commands in a variety of ways:

Node A representation of an individual node, which can be any of these:
  • Short GPFS administration node interface name.
  • Long GPFS administration node interface name.
  • Short GPFS daemon node interface name.
  • Long GPFS daemon node interface name.
  • IP address corresponding to the GPFS daemon node interface.
  • GPFS node number.

Node - Node
A node range, indicated by specifying two node numbers separated by a hyphen (-), with the
first node number being less than or equal to the second node number. For example, node range
3-8 specifies the nodes with node numbers 3, 4, 5, 6, 7, and 8.

NodeClass
A set of nodes that share a particular characteristic. These node classes are known to GPFS:


  • all All of the nodes in the GPFS cluster.
  • clientnodes: All nodes that do not participate in file system administration activities.
  • managernodes: All nodes in the pool of nodes from which file system managers and token managers are selected.
  • mount: For commands involving a file system, all of the local nodes on which the file system is mounted
  • nonquorumnodes: All of the non-quorum nodes in the GPFS cluster.
  • nsdnodes: All of the NSD server nodes in the GPFS cluster.
  • quorumnodes: All of the quorum nodes in the GPFS cluster.

NodeFile
A file that contains a list of nodes. A node file can contain individual nodes or node ranges.

Logs, traces and dumps

GPFS writes both operational messages and error data to the MMFS log file. The MMFS log can be found in the /var/adm/ras directory on each node.

The MMFS log file is named mmfs.log.date.nodeName, where date is the time stamp when the instance of
GPFS started on the node and nodeName is the name of the node. The latest mmfs log file can be found by using the symbolic file name /var/adm/ras/mmfs.log.latest.

The MMFS log from the prior startup of GPFS can be found by using the symbolic file name /var/adm/ras/mmfs.log.previous. All other files have a timestamp and node name appended to the file name.

The error log (errpt) contains information about several classes of events or errors. These classes are:
  • “MMFS_ABNORMAL_SHUTDOWN”
  • “MMFS_DISKFAIL”
  • “MMFS_ENVIRON”
  • “MMFS_FSSTRUCT”
  • “MMFS_GENERIC”
  • “MMFS_LONGDISKIO”
  • “MMFS_QUOTA”
  • “MMFS_SYSTEM_UNMOUNT”
  • “MMFS_SYSTEM_WARNING”

Configuration Files


/var/mmfs/gen/mmfsNodeDataContains GPFS cluster configuration data pertaining to the node.
/var/mmfs/gen/mmsdrfsContains a local copy of the mmsdrfs file found on the primary and secondary GPFS cluster configuration server nodes.
/var/mmfs/gen/mmfs.cfgContains GPFS daemon startup parameters.

GPFS port usage

The nodes in a GPFS cluster communicate with each other using the TCP/IP protocol. The port number used by the main GPFS daemon (mmfsd) is controlled with the tscTcpPort configuration parameter. The default port number is 1191.


Sources: 

General Parallel File System - Administration and Programming Reference - Version 3 Release 3(SA23-2221-03)
General Parallel File System -  Problem Determination Guide - Version 3 Release 3 (GA76-0415-03)
General Parallel File System - Advanced Administration Guide - Version 3 Release 3 (SC23-5182-03)

47 comentarios:

  1. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  2. thanks for your content. I’m going to have to bookmark it for later, because it made me think! Best wishes.if you want get certification with job in Cloud Computing please let us know by click the followig link
    Android Training in Chennai

    ResponderEliminar
  3. It is nice information and also easy to understand that.Thanks for this.
    SAP ABAP Training in Chennai

    ResponderEliminar
  4. Amazing..You have clearly explained about IBM General Parallel File System (GPFS).Its useful for me..More informative and thanks for sharing..
    Android Training in Chennai

    ResponderEliminar
  5. Excellent information.It is explained the IBM is easy to understanding.It is so nice.Thanks for this valuable one.
    Java j2ee Training in Chennai

    ResponderEliminar
  6. Thank you for sharing like this information. This is the most easy way of learning. This helps me to get some idea regarding this and helps me to bring a creative thought.
    Informatica Training in Chennai

    ResponderEliminar
  7. thanks for shared wonderful information about cluster working file database. and its useful to get idea about how to handle the cluster file. thanks for new database introduced shared with us.
    Loadrunner Training in Chennai

    ResponderEliminar
  8. This concept is really awesome and it is very useful , thanks for sharing this information , which is really interesting.

    dot net training in chennai

    ResponderEliminar
  9. You have explained about unix quick sheet..Its more informative..Gained some new idea about unix..
    Linux training in chennai

    ResponderEliminar
  10. this blog clearly explains the concept of unix and its techniques. Thanks for posting this information.
    ssis training in chennai

    ResponderEliminar
  11. This unix quick sheets are very useful and is to know more information about this unix sheets.It is very useful for me.

    Sharepoint admin training in chennai

    ResponderEliminar

  12. All are saying the same thing repeatedly, but in your blog I had a chance to get some useful and unique information, I love your writing style very much, I would like to suggest your blog in my dude circle, so keep on updates.


    Java training in Adyar

    ResponderEliminar
  13. Thanks for posting useful information.You have provided an nice article, Thank you very much for this one. And i hope this will be useful for many people.. and i am waiting for your next post keep on updating these kinds of knowledgeable things...Really it was an awesome article...very interesting to read..please sharing like this information......
    Web Design Development Company
    Mobile App Development Company


    ResponderEliminar
  14. very nice blogs. I have to learning for lot of information for this sites.Sharing for wonderful information.Thanks for sharing this valuable information to our vision. You have posted a trust worthy blog keep sharing.
    web development training in chennai

    ResponderEliminar
  15. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  16. Your good knowledge and kindness in playing with all the pieces were very useful. I don’t know what I would have done if I had not encountered such a step like this.
    Best Python training Institute in chennai

    ResponderEliminar
  17. Inspiring writings and I greatly admired what you have to say , I hope you continue to provide new ideas for us all and greetings success always for you..Keep update more information.


    rpa training in chennai |
    best rpa training in chennai
    rpa online training
    rpa course in bangalore
    rpa training in pune
    rpa training in marathahalli
    rpa training in btm

    ResponderEliminar
  18. Excellent post!!!. The strategy you have posted on this technology helped me to get into the next level and had lot of information in it.
    python course institute in bangalore | python Course institute in bangalore| python course institute in bangalore

    ResponderEliminar
  19. It has been simply incredibly generous with you to provide openly what exactly many individuals would’ve marketed for an eBook to end up making some cash for their end, primarily given that you could have tried it in the event you wanted.
    industrial course in chennai

    ResponderEliminar

  20. Get the most advanced Python Course by Professional expert. Just attend a FREE Demo session
    For further details call us @ 9884412301 | 9600112302
    Python training in chennai | Python training in velachery

    ResponderEliminar
  21. Informative post indeed, I’ve being in and out reading posts regularly and I see alot of engaging people sharing things and majority of the shared information is very valuable and so, here’s my fine read.
    click here button png
    click here to view/download the e-receipt
    click here now
    click here for ecs status of pensioners
    click here to know centre location

    ResponderEliminar
  22. My rather long internet look up has at the end of the day been compensated with pleasant insight to talk about with my family and friends.

    Best PHP Training Institute in Chennai|PHP Course in chennai
    Best .Net Training Institute in Chennai
    Dotnet Training in Chennai
    Dotnet Training in Chennai

    ResponderEliminar
  23. The way of Explanation's about the content is ease to understand...Thanks for such a clear flow of content...Keep Doing this amazing works
    Java training in chennai | Java training in annanagar | Java training in omr | Java training in porur | Java training in tambaram | Java training in velachery

    ResponderEliminar
  24. This is the exact information I am been searching for, Thanks for sharing the required infos with the clear update and required points. To appreciate this I like to share some useful information.
    Java Training in Chennai

    Java Training in Velachery

    Java Training in Tambaram

    Java Training in Porur

    Java Training in Omr

    Java Training in Annanagar

    ResponderEliminar
  25. Very Informative blog thank you for sharing. Keep sharing.

    Best software training institute in Chennai. Make your career development the best by learning software courses.

    Docker Training in Chennai
    devops training in chennai
    cloud computing courses in chennai

    ResponderEliminar
  26. I believe there are many more pleasurable opportunities ahead for
    individuals that looked at your site.
    manual testing training in Chennai
    oracle dba training in Chennai
    best java training in Chennai

    ResponderEliminar
  27. Blogs are usually more personal in nature, godaddy coupon code july 2023 often written in a conversational style, and often reflect the author's own experiences and perspectives.

    ResponderEliminar
  28. Blogs allow for Will Gojo Satoru Die In Jujutsu Kaisen? greater interaction and engagement with readers through comments sections, where readers can share their thoughts and opinions.

    ResponderEliminar
  29. As you delve into the capabilities of IBM General Parallel File System (GPFS), don't forget to prioritize your dental health. Explore Dentists In Delhi for a seamless blend of technology exploration and oral well-being. Your smile deserves as much attention as cutting-edge file systems.

    ResponderEliminar