z/VM Under Oracle RAC
GW前日からGW初日の朝までこの環境の準備をやってました。はっきり言って拷問。
まず、3390-3型のフォーマット。容量にして約1T程度で、いまどきアキバでも3TのHDDが売ってるくらいですから、一般の人には大したことないやんといわれるのがオチ。ECKD(3390)ディスクって要は3型の場合は2.2Gのディスクの器が決まっているので1Tといわれるとこれらの3390DASD全部をフォーマットしなくてはならないのです。つまりFCPディスクのように1つでかいLUNを作ってそこをフォーマットというわけにはいかないのです。
その辺があんまり理解されてないっすね。
これ、LPARUnderだったら少しはまし。でもVM Underとなるとちょっとめんどくさいです。
さてー、この400vol強のDASDをどうやってフォーマットするか?
まずはVM Underで1つ目のLinuxを作ります。そこにRACの共有DASDをとりあえずATTACHしておきます。
これはコマンドとかGUI(Yast)でできるレベルではないのでシェル作りました。
手順としてはDASDFMT→FDASDになりますが、DASDFMTのほうは複数Volumeをいっぺんに指定ができるのでその中で並行フォーマットの数などを指定できます。
DASDFMT自体は時間がかかるのですが、並行でやればある程度時間は短縮できます。
シェルはこんな風に作りました。
for i in 'ls /dev/disk/by-pass/ccw-0.0.xxxx | grep part'
do dasdfmt $i
done
という風に作ります。これでdasdfmtはできる。
問題はfdasd。これは1つずつしかできない。うーん困った・・・。シェルを考えるも思いつかない。
とりあえず、lsdasdをawkで先頭デバイスをひらって、fdasdのコマンドを作った(笑)
これもきちんとしたシェルにできるのかもしれないが時間がなかった(笑)
今回はOracleのASMで管理を行うのでLVMでパーテーションを切るまででおしまい。
さてこれをRACの相手側と共有しなくてはならない。LPARの場合は簡単なんだけどVM Underでは一筋縄ではいかない。
まず、あるGuest Userに単純にATTACHしてしまうと、ほかのGuestユーザは使えない。
なので、MINIDISKとして定義をする。通常MIDIDISKって名前の通り、100Cylとか区切って使うものだが、今回は3390-3のフルVolumeのMIDIDISKとしてUser directに定義を行う。
MDISK xxxx 3390 0 END 0Xxxxx MNW と定義を行う。400vol分。
ちなみにCylder指定で、0 ENDとするとVTOCも変更できるが1 ENDとするとVTOCが変更できません。
これでRAC 1側の設定はおしまい。
続いてRAC 2側の設定。すでにDASDおよびLVMの設定は終わっているので、VMの定義から。
今度はRAC 1側で定義したMINIDISKにLINKを行います。
LINK xxxx xxxx RAC1 GuestUser MW
をRAC 2側からRAC1GuestユーザーのMINIDISKに書き込み可能状態でLINKします。
これでRAC2側からもDASDが見える状態になりますが、このままではLinuxが認識しないので、
vgscan でRAC 1側で作ったvgが見えるか確認します。
見えたら、vgchange -ay VG名にすると晴れてRAC 2側からも書き込み可能なDASDが完成します。
これで私は徹夜しました。
まず、3390-3型のフォーマット。容量にして約1T程度で、いまどきアキバでも3TのHDDが売ってるくらいですから、一般の人には大したことないやんといわれるのがオチ。ECKD(3390)ディスクって要は3型の場合は2.2Gのディスクの器が決まっているので1Tといわれるとこれらの3390DASD全部をフォーマットしなくてはならないのです。つまりFCPディスクのように1つでかいLUNを作ってそこをフォーマットというわけにはいかないのです。
その辺があんまり理解されてないっすね。
これ、LPARUnderだったら少しはまし。でもVM Underとなるとちょっとめんどくさいです。
さてー、この400vol強のDASDをどうやってフォーマットするか?
まずはVM Underで1つ目のLinuxを作ります。そこにRACの共有DASDをとりあえずATTACHしておきます。
これはコマンドとかGUI(Yast)でできるレベルではないのでシェル作りました。
手順としてはDASDFMT→FDASDになりますが、DASDFMTのほうは複数Volumeをいっぺんに指定ができるのでその中で並行フォーマットの数などを指定できます。
DASDFMT自体は時間がかかるのですが、並行でやればある程度時間は短縮できます。
シェルはこんな風に作りました。
for i in 'ls /dev/disk/by-pass/ccw-0.0.xxxx | grep part'
do dasdfmt $i
done
という風に作ります。これでdasdfmtはできる。
問題はfdasd。これは1つずつしかできない。うーん困った・・・。シェルを考えるも思いつかない。
とりあえず、lsdasdをawkで先頭デバイスをひらって、fdasdのコマンドを作った(笑)
これもきちんとしたシェルにできるのかもしれないが時間がなかった(笑)
今回はOracleのASMで管理を行うのでLVMでパーテーションを切るまででおしまい。
さてこれをRACの相手側と共有しなくてはならない。LPARの場合は簡単なんだけどVM Underでは一筋縄ではいかない。
まず、あるGuest Userに単純にATTACHしてしまうと、ほかのGuestユーザは使えない。
なので、MINIDISKとして定義をする。通常MIDIDISKって名前の通り、100Cylとか区切って使うものだが、今回は3390-3のフルVolumeのMIDIDISKとしてUser directに定義を行う。
MDISK xxxx 3390 0 END 0Xxxxx MNW と定義を行う。400vol分。
ちなみにCylder指定で、0 ENDとするとVTOCも変更できるが1 ENDとするとVTOCが変更できません。
これでRAC 1側の設定はおしまい。
続いてRAC 2側の設定。すでにDASDおよびLVMの設定は終わっているので、VMの定義から。
今度はRAC 1側で定義したMINIDISKにLINKを行います。
LINK xxxx xxxx RAC1 GuestUser MW
をRAC 2側からRAC1GuestユーザーのMINIDISKに書き込み可能状態でLINKします。
これでRAC2側からもDASDが見える状態になりますが、このままではLinuxが認識しないので、
vgscan でRAC 1側で作ったvgが見えるか確認します。
見えたら、vgchange -ay VG名にすると晴れてRAC 2側からも書き込み可能なDASDが完成します。
これで私は徹夜しました。