Grow (expand) a StorNext filesystem

Robert Leong -

(source of this article from Quantum site: http://qsupport.quantum.com/kb/node/1626)

(For Meta data expansion read this http://support.dvsus.com/hc/en-us/articles/115000793606)

Does StorNext support dynamic file system growth? How can I grow a file system?

StorNext does not support dynamic growth. You can grow a file system by adding Stripe Groups, but it is a manual process.

The process only takes a few minutes, with exception of running the cvfsck command, which can take a long time, depending on the size and number of files in the existing file system.

Use this procedure to grow a file system.

  1. Unmount all clients.
  2. On the Metadata Controller (MDC) go into cvadmin and stop the active file system.
  3. Run a cvfsck command in active mode.  See this example:
    http://support.dvsus.com/hc/en-us/articles/115000861726
  4. Label new disks.
  5. Create a new Stripe Group at the bottom of the existing Stripe Group Section in your file_system_name.cfg  file.

    CAUTIONCAUTION: Make sure you put the new stripe group at the bottom of the configuration file.  Putting the new stripe group elsewhere in the file can cause either data loss or data corruption.

  6. Run the cvupdatefs command from the /usr/cvfs/config directory.
  7. Start file system in cvadmin.
  8. Mount clients.

Example cvupdatefs run to expand a data Stripe Group:

[root@mds1-12316 config]# cvupdatefs
Checked Build disabled - default.
StorNext File Systems on host mds1-12316:

1)  ddn6620 
2)  dlc 
3)  twc 
4)  test 
5)  mig 

Choose a file system by number (1-5) or zero (0) to exit -> 3


The following changes have been detected in the configuration
Please review these changes carefully.

Stripe Group Name  Stripe Status  MetaData   Journal
=================  =============  ========   =======
Meta_Stripe        No Change      No Change  No Change
Data_Stripe        No Change                          
Data_Stripe_2      Create                             


This will modify the file system "twc".
Are you sure you want to continue? [y/N] y


Attempting to acquire arbitration block... successful.

Flushing journal entries...  done
Initializing stripe group Data_Stripe_2 information... ok

Flushing buffers...
Updating ICB information...
Updating SuperBlock information...
*Warning*: File system 'twc' was modified.
[root@mds1-12316 config]#

Example .cfgx file, expansion section is highlighted, LUN added (data1) is larger than the original LUN (data0) requiring Data_Type450.

<?xml version="1.0"?>
<configDoc xmlns="http://www.quantum.com/snfs" version="1.0">
<config configVersion="0" name="twc" fsBlockSize="16384" journalSize="16777216">
<globals>
<abmFreeLimit>false</abmFreeLimit>
<allocationStrategy>round</allocationStrategy>
<haFsType>HaUnmanaged</haFsType>
<bufferCacheSize>134217728</bufferCacheSize>
<cvRootDir>/</cvRootDir>
<storageManager>false</storageManager>
<dataMigrationThreadPoolSize>128</dataMigrationThreadPoolSize>
<debug>00000000</debug>
<dirWarp>true</dirWarp>
<extentCountThreshold>32768</extentCountThreshold>
<enforceAcls>false</enforceAcls>
<fileLocks>false</fileLocks>
<fileLockResyncTimeOut>20</fileLockResyncTimeOut>
<forcePerfectFit>false</forcePerfectFit>
<fsCapacityThreshold>0</fsCapacityThreshold>
<globalSuperUser>true</globalSuperUser>
<inodeCacheSize>131072</inodeCacheSize>
<inodeExpandMin>0</inodeExpandMin>
<inodeExpandInc>0</inodeExpandInc>
<inodeExpandMax>0</inodeExpandMax>
<inodeDeleteMax>0</inodeDeleteMax>
<inodeStripeWidth>0</inodeStripeWidth>
<maxConnections>32</maxConnections>
<maxLogSize>16777216</maxLogSize>
<maxLogs>4</maxLogs>
<remoteNotification>false</remoteNotification>
<reservedSpace>true</reservedSpace>
<fsmRealTime>false</fsmRealTime>
<fsmMemLocked>false</fsmMemLocked>
<opHangLimitSecs>300</opHangLimitSecs>
<perfectFitSize>131072</perfectFitSize>
<quotas>false</quotas>
<restoreJournal>false</restoreJournal>
<restoreJournalDir/>
<restoreJournalMaxHours>0</restoreJournalMaxHours>
<restoreJournalMaxMb>0</restoreJournalMaxMb>
<stripeAlignSize>0</stripeAlignSize>
<trimOnClose>0</trimOnClose>
<threadPoolSize>64</threadPoolSize>
<unixDirectoryCreationModeOnWindows>777</unixDirectoryCreationModeOnWindows>
<unixIdFabricationOnWindows>false</unixIdFabricationOnWindows>
<unixFileCreationModeOnWindows>666</unixFileCreationModeOnWindows>
<unixNobodyUidOnWindows>501</unixNobodyUidOnWindows>
<unixNobodyGidOnWindows>219</unixNobodyGidOnWindows>
<windowsSecurity>false</windowsSecurity>
<eventFiles>true</eventFiles>
<eventFileDir/>
<allocSessionReservationSize>1073741824</allocSessionReservationSize>
</globals>
<diskTypes>
<diskType typeName="Meta_Type" sectors="585885663" sectorSize="512"/>
<diskType typeName="Data_Type" sectors="585885663" sectorSize="512"/>
<diskType typeName="Data_Type450" sectors="879044575" sectorSize="512"/>
</diskTypes>
<stripeGroups>

<stripeGroup index="0" name="Meta_Stripe" status="up" stripeBreadth="131072" read="true" write="true" metadata="true" journal="true" userdata="false" realTimeIOs="0" realTimeIOsReserve="0" realTimeMB="0" realTimeMBReserve="0" realTimeTokenTimeout="0" multipathMethod="rotate">
<disk index="0" diskLabel="meta4" diskType="Meta_Type" ordinal="0"/>
</stripeGroup>

<stripeGroup index="1" name="Data_Stripe" status="up" stripeBreadth="1048576" read="true" write="true" metadata="false" journal="false" userdata="true" realTimeIOs="0" realTimeIOsReserve="0" realTimeMB="0" realTimeMBReserve="0" realTimeTokenTimeout="0" multipathMethod="rotate">
<affinities exclusive="false">
<affinity>data0</affinity>
</affinities>
<disk index="0" diskLabel="data0" diskType="Data_Type" ordinal="1"/>
</stripeGroup>

<stripeGroup index="2" name="Data_Stripe_2" status="up" stripeBreadth="1048576" read="true" write="true" metadata="false" journal="false" userdata="true" realTimeIOs="0" realTimeIOsReserve="0" realTimeMB="0" realTimeMBReserve="0" realTimeTokenTimeout="0" multipathMethod="rotate">
<affinities exclusive="false">
<affinity>data1</affinity>
</affinities>
<disk index="0" diskLabel="data1" diskType="Data_Type450" ordinal="2"/>
</stripeGroup>

</stripeGroups>
</config>
</configDoc>
Have more questions? Submit a request

0 Comments

Article is closed for comments.