I was pretty sure you could do CIFS Terminate and NFS Off
before performing a 7MTT CBT cutover. Alas, my memory isn’t great so when
someone told me you needed CIFS and NFS running, I had to double-check (in fairness, they were right - since they were talking about CFT). I
should point out that really I wanted to test this out for CFT, but currently
no lab for this, hence using CBT. Also, we could terminate CIFS at a volume
level in 7-Mode, but here we're doing the whole shebang approach (all data
volumes from the filer.)
Scenario
- We have a filer = fas01
- With 3 NAS volumes (CIFS really, but the volume is
exported out by default)
- A dedicated NFS volume with 3 qtree exports
And we want to transition from 7-Mode (version here is
8.2.3) to C-Mode (version here is 8.3.1), but the customer wants to makes sure
there’s no client access before we cutover to cDOT, which means doing CIFS
terminate and NFS off before cutover (they don’t want to unmount all their
Linux clients. and we’re going to bring the IPs across in the cutover). The
question I want to answer (I could have asked someone, but I like/need to prove things
to myself, and it gives me something to blog about too) is:
Q: If we terminate CIFS and NFS before our 7MTT cutover,
is the NAS configuration (of shares, exports, and other NAS stuff) transitioned?
A: Yes
Really, it doesn’t matter, since the configuration is
applied when you click ‘Apply Configuration’, the ‘Complete Transition’ button
just cuts the volumes over.
Image: Configuration
is applied here
The Proof
7-Mode volumes (showing just the volumes we’re
transitioning):
fas01>
vol status
Volume State Status
vol1_NAS
online raid_dp, flex, 64-bit
vol2_NAS
online raid_dp, flex, 64-bit
vol3_NAS
online raid_dp, flex, 64-bit
NFSVOL online raid_dp, flex, 64-bit
7-Mode CIFS shares:
fas01>
cifs shares
Name Mount Point Permission
---- ----------- ----------
cifstest /vol/vol1_NAS everyone / Full Control
NAS_VOL1 /vol/vol1_NAS everyone / Full Control
NAS_VOL2 /vol/vol2_NAS everyone / Full Control
NAS_VOL3 /vol/vol3_NAS everyone / Full Control
FOLDER3 /vol/vol3_NAS/FOLDER3 everyone / Full Control
FOLDER2 /vol/vol2_NAS/FOLDER2 everyone / Full Control
FOLDER1 /vol/vol1_NAS/FOLDER1 everyone / Full Control
7-Mode Exports:
fas01>
exportfs
/vol/vol1_NAS
-sec=sys,rw,nosuid
/vol/vol2_NAS
-sec=sys,rw,nosuid
/vol/vol3_NAS
-sec=sys,rw,nosuid
/vol/NFSVOL/qtree1
-sec=sys,rw=10.10.10.10,root=10.10.10.10
/vol/NFSVOL/qtree2
-sec=sys,rw=20.20.20.20,root=20.20.20.20
/vol/NFSVOL/qtree3
-sec=sys,rw=30.30.30.30,root=30.30.30.30
Note: Because
NFSVOL is exported at the qtree level but there’s no volume level export, we’ll
need to export the volume readonly post transition as per 7MTT Precheck Error
10111, for the clients that need access to the qtrees. Override error 10111 by
doing>
transition cbt ignorableerrors add -p
NAS_Test -c nfs-qtrees-exported
And after clicking ‘Apply Configuration’ and ‘Finish Testing’,
we have on cDOT:
cluster1::>
share show -volume *NAS -fields share-name,path
vserver share-name path
--------
---------- -------------
vserver1
cifstest /vol/vol1_NAS
vserver1
FOLDER1 /vol/vol1_NAS/FOLDER1
vserver1
FOLDER2 /vol/vol2_NAS/FOLDER2
vserver1
FOLDER3 /vol/vol3_NAS/FOLDER3
vserver1
NAS_VOL1 /vol/vol1_NAS
vserver1
NAS_VOL2 /vol/vol2_NAS
vserver1
NAS_VOL3 /vol/vol3_NAS
cluster1::>
export-policy rule show -fields policyname,clientmatch -protocol nfs
vserver policyname ruleindex clientmatch
--------
---------- --------- -----------
vserver1
roroot 1 0.0.0.0/0
vserver1
transition_export_policy_1 1 10.10.10.10
vserver1
transition_export_policy_2 1 30.30.30.30
vserver1
transition_export_policy_3 1 0.0.0.0/0
vserver1
transition_export_policy_4 1 20.20.20.20
vserver1
transition_readonly 1 0.0.0.0/0
cluster1::>
volume show -volume *NAS|NFS* -fields policy
vserver volume policy
--------
------ -------------------
vserver1
NFSVOL transition_readonly
vserver1
vol1_NAS transition_export_policy_3
vserver1
vol2_NAS transition_export_policy_3
vserver1
vol3_NAS transition_export_policy_3
cluster1::>
qtree show -fields export-policy
vserver volume qtree export-policy
--------
------ ----- -------------------
vserver1
NFSVOL ""
transition_readonly
vserver1
NFSVOL qtree1 transition_export_policy_1
vserver1
NFSVOL qtree2 transition_export_policy_4
vserver1
NFSVOL qtree3 transition_export_policy_2
vserver1
vol1_NAS ""
transition_export_policy_3
vserver1
vol2_NAS ""
transition_export_policy_3
vserver1
vol3_NAS ""
transition_export_policy_3
Cutover
Now we’re ready to cutover and so we first terminate CIFS and
NFS:
fas01>
cifs terminate
fas01>
nfs off
Image: CIFS and NFS
are not running prior to cutover.
And click the ‘Complete Transition’ button to perform the
‘Storage Cutover’. And we’re going to take source volumes offline.
And the cutover is all successful.
Image: Successful
7MTT CBT NAS cutover with NFS and CIFS disabled.
And we still have all the shares and exports as above (as
was applied by clicking ‘Apply Configuration’.)
Thinking about
CFT
The CFT workflow has an ‘Apply SVM Config’ button, it doesn't have CBT’s ‘Apply Configuration’ button, The button names are subtly different. This makes me think that the volume configurations (shares, exports, etcetera) are exported in 7MTT CFT's 'Export & Halt' phase, so CIFS and NFS do indeed need to be running on the 7-Mode system prior to cutover.
To be continued...
Comments
Post a Comment