2014年 10月 05日
Novell Openenterprise Server(OES) ボリューム名の変更
実際には HA クラスタなどを導入すれば良い、という事でもありますが、よほど大規模なネットワークや未停止システムでもなければ、短いメンテナンス時間で、サクッとサーバーを入れ替えるテクニックで、最小のダウンタイムでサーバーや、ディスク装置を入れ替えることが出来ます。
現実的には、iSCSI デバイスのリース、償却期間切れ、ディスク容量の圧迫による装置全体のスケールアップなどのタイミングで、サクッと入れ替えてしまう事が現実的な作業となります。
例えば、サーバー本体の / (ルート)パーティションは仮想マシン上で動作しており、ディスク装置が外付けの iSCSI デバイスである場合、iSCSI デバイスを別な筐体に移行してやれば、以前の環境をそのまま移行することは、Novell Openenterprise Server では簡単な事です。
手順としては新しい iSCSI デバイスをマウントした状態で
1) 新しいボリュームを新しい筐体上に New_VOL: として作成する。
2) 古いVOL: の中身を New_VOL: に nwcopy コマンドなどでコピー同期する。
- この間移行期間-
- 移行-
3) VOL: を VOL_Old: にリネーム
4) VOL_New: を VOL: に変更
5) ユーザに解放
6) 問題がなければ VOL_Old: を削除/撤去
という手順となります。
ここでは、ボリューム名の変更手順を説明します。ここから逆に古いサーバーの入れ替えテクニックを考えてみましょう。
まず、 iManager の Role(役割) から Storage > Volume を選び、サーバーの VOLUME を Rename します。

これでボリューム自体は VOL_New に変更できます。しかし、実際には /media/nss/VOL にマウントされています。

実際に名前を変える場合は、警告がでるので Continue

実際の mount コマンドで確認すると VOL_New は /media/nss/VOL にマウントされています。
oes11x1:/media/nss # ls -al
total 8
drwxr-xr-x 3 root root 4096 Jun 16 13:02 .
drwxr-xr-x 3 root root 4096 Jun 15 09:17 ..
drwxrwxrwx 1 root root 4096 Jun 16 13:04 VOL1
oes11x1:/media/nss # mount
/dev/xvda2 on / type ext3 (rw,acl,user_xattr)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
debugfs on /sys/kernel/debug type debugfs (rw)
udev on /dev type tmpfs (rw,mode=0755)
tmpfs on /dev/shm type tmpfs (rw,mode=1777)
devpts on /dev/pts type devpts (rw,mode=0620,gid=5)
fusectl on /sys/fs/fuse/connections type fusectl (rw)
securityfs on /sys/kernel/security type securityfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
none on /var/lib/ntp/proc type proc (ro,nosuid,nodev)
admin on /_admin type nssadmin (rw)
novfs on /var/opt/novell/nclmnt type novfs (rw)
/dev/pool/P1 on /opt/novell/nss/mnt/.pools/P1 pype nsspool (rw,name=P1)
VOL1_NEW on /media/nss/VOL1 type nssvol (rw,name=VOL1_NEW,norename)
oes11x1:/media/nss #
ログインスクリプト上では server\VOL: はなくなってしまったのでドライブマップは失敗します。

そこでログインスクリプトを書き換えてしまいます。

無事スクリプトで map できます。

逆に、マウントポイントを変えてしまえばいいので iManager > Role > Storage > Volume より Mount Point を変更してしまいます。/media/nss/new を作り、
oes11x1:/media/nss # mkdir new
iManager からマウントポイントを変更します。

これで、VOL: は別なマウントポイントにマウントできます。
oes11x1:/media/nss # mount
/dev/xvda2 on / type ext3 (rw,acl,user_xattr)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
debugfs on /sys/kernel/debug type debugfs (rw)
udev on /dev type tmpfs (rw,mode=0755)
tmpfs on /dev/shm type tmpfs (rw,mode=1777)
devpts on /dev/pts type devpts (rw,mode=0620,gid=5)
fusectl on /sys/fs/fuse/connections type fusectl (rw)
securityfs on /sys/kernel/security type securityfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
none on /var/lib/ntp/proc type proc (ro,nosuid,nodev)
admin on /_admin type nssadmin (rw)
novfs on /var/opt/novell/nclmnt type novfs (rw)
/dev/pool/P1 on /opt/novell/nss/mnt/.pools/P1 type nsspool (rw,name=P1)
VOL1_NEW on /media/nss/new/VOL1 type nssvol (rw,name=VOL1_NEW,norename)
oes11x1:/media/nss #
ということで、Novell Openenterprise Server のボリューム名の変更とマウントポイントの変更は容易に数分で完了します。
ここで説明した手順はあくまでも、順序が逆で、新しい革袋に古い葡萄酒を詰める方法ではないじゃないか、という事になります。
そこで実際に想定する、新しい革袋に古い葡萄酒を詰め込む方法としては、
1) 新しい iSCSI デバイスを iSCSI イニシエーターで接続
2) 新しい iSCSI デバイスに対して iManager から VOL_NEW を作成して定義、/media/nss/new/VOL にマウント
3) nwcopy などでアクセス権などをまとめてcron などで VOL: -> VOL_NEW: に定時コピー
- ここは移行期間中 -
4) 使用禁止の宣言(ここからが本番移行の始まり)最終同期を行う
5) server/VOL: の名前を iManager から server/VOL_Old に変更
6) /media/nss/VOL のマウントポイントを /media/nss/OLD/VOLに変更
7) /media/nss/NEW/VOL のマウントポイントを /media/nss に変更
これでログインスクリプトの変更も必要なく、ユーザが server/VOL: にアクセスする場合は新しい革袋の中の葡萄酒となります。
8) ncpcon で disable write VOL_OLD をセットして、古いボリュームを書き込み禁止に
9) ユーザに解放、もし、コピーされていないファイルがあったり、おかしな現象が出た場合のために、 VOL_OLD の中身は DLT メディアやHDDメディアにバックアップコピーを取り、半永久保存のアーカイブを取る。
10) VOL_OLD:を eDirectory 上から削除して、iSCSI Initiatorから 古い iSCSI デバイスをデタッチして撤去。
という手順となるでしょう。
--
Novell Openenterprise Server を仮想化した状態で iSCSI と併せて運用すると、容易に、しかも慎重に計画したプラン通り移行すれば、わずか数分から数十分の停止時間で、古い革袋から新しい革袋にデータを移行させることができます。
-Keyword-
Novell Openenterprise Server ファイルサーバー移行、ファイルサーバーマイグレーション、Windows ダウンタイムの削減
問い合わせ
islandcenter.jp