改善構想の続き。構想だけ。
vmware serverのsnapshot機能はもう日々のセッション保存のためにのみ活用し、手動でsnapshot的にゃものが欲しい場合にはvmのディレクトリごとコピーして置いといたらどうよ、という話。
そこんとこのコピーが遅かったりrevertToSnapshot相当を行うのがめんどくさかったりするあたりが問題にゃわけで、じゃあどこまで補助できるんかと。
vmwareのsnapshotは常時補助的に使ってOKということににゃるので、
snapshot相当は
"C:\Program Files\VMware\VMware VIX\vmrun.exe" snapshot vm\dir\xxx.vmx
cp vm\dir backup\dir
で済むので、cpのところをvmホストのパフォーマンスに影響を与えにゃい程度にrobocopy等でwaitいれつつ行うとして、revertToSnapshot相当は
"C:\Program Files\VMware\VMware Server\vmware-cmd.bat" vm\dir\xxx.vmx stop hard
rm vm\dir\*
cp vm\dir backup\dir
"C:\Program Files\VMware\VMware VIX\vmrun.exe" revertToSnapshot vm\dir\xxx.vmx
で、さすがに時間がかかるというか、そう安定して動いてくれるとは思えにゃい。cpではにゃくmvすれば早いので、ある程度短縮できそうだが、ほっとくとそのsnapshot相当が破壊される。ということは
"C:\Program Files\VMware\VMware Server\vmware-cmd.bat" vm\dir\xxx.vmx stop hard
rm vm\dir\*
mv vm\dir\* backup\dir
"C:\Program Files\VMware\VMware VIX\vmrun.exe" revertToSnapshot vm\dir\xxx.vmx
cp vm\dir backup\dir
ということににゃるが、にゃんつーか復帰するのに何分かかるんだろうこれ。終わるまでsnapshot取っちゃダメってのも縛りきついし。とにゃると、
"C:\Program Files\VMware\VMware Server\vmware-cmd.bat" vm\dir\xxx.vmx stop hard
rm vm\dir\*
"C:\Program Files\Microsoft\VSSSDK72\Tools\VSSReports\vshadow.exe" -script=env.cmd -p x:
mv vm\dir\* backup\dir
"C:\Program Files\VMware\VMware VIX\vmrun.exe" revertToSnapshot vm\dir\xxx.vmx
cp x: backup\dir
"C:\Program Files\Microsoft\VSSSDK72\Tools\VSSReports\vshadow.exe" -da
こうしろと言うことか? にゃんかすごく酷いことににゃってにゃいかこれ・・・まぁ原理的には動いてると思うけど。
まぁsnapshot相当を多数保存出来るし便利だと思うのでだれか実装して欲しいにゃぁ、とか。
メインvmware鯖が落ちたりで、ちょっとvm環境を考え直し。
vm上のアプリのランタイムが3ヶ月とか当たり前だし、こういうセッションをまるごと保存できるのがvmのいいところ。ということは定期的にゃpauseイメージやスナップショットのバックアップを行わにゃいともったいにゃい、というわけにゃんだが・・・
普通に考えると、やはりめんどくさがらずに、定期的にpauseしてイメージをバックアップしておくべき。つまり
VSSの出番。だがpauseってのが何とにゃく気にくわにゃい。出来ればsnapshotをバックグラウンドで、のほうがいいよね、って話。
一応、定期的にスナップショットを取るのはvmrunで出来るわけで、どうせrevertToSnapshotするんだったら他は整合性いらにゃいとにゃると、
"C:\Program Files\VMware\VMware VIX\vmrun.exe" snapshot dir\xxx.vmx
copy dir\*.* backup\dir
でいいわけ。これまた実験してにゃいのでどうせwait入れたり必要にゃんだろうけど。
ただこれだとsnapshotが自動で生成されてしまうわけで。vmware serverだから以前のsnapshotが消えてしまう。それはちと困る、と。
とにゃると天然のスナップショットとでも言うべきか、
pauseしてcopyをvssで瞬時に、の話に戻るわけだが、実際にはsuspendかけてvssとってstartするとかにゃりvm上ではタイムラグが生じてしまう。それはもうsnapshotの方がいいに決まってる。
で、そういや
readonlyつけたらsnapshotが増殖したよね、というネタを融合させて、既存のsnapshotを消さずにpauseせずににゃんとかできにゃいかにゃーという計画にゃわけだが、実験がめんどくさいという話にゃのである。
うーん、もう手動snapshotとか諦めて全部copyでいいんじゃにゃいかって案もある。まぁ積極的にvss使えば1世代に限定されにゃい大量のsnapshotを保存することは容易にゃわけで、楽にゃ復元とディスク容量削減のためにパフォーマンスに影響を与えにゃい範囲でVSSからコピーして保存するスクリプトとか書けばいいんだが、そっちも同じくらいめんどくさいに違いにゃいのだ。
まぁ何はともあれ、手近にゃところから手をつけてみる。
aptitude install samba krb5-config krb5-user 他
/etc/resolv.conf
search neko.local
ip_of_ad1_with_dns
ip_of_ad2_with_dns
この辺は微妙。既にDNSの建ってるAD鯖があるにゃらそれでいいんじゃにゃいの、というわけにゃんだが、何とにゃれば/etc/hostsで正逆引き出来るようにAD鯖や自鯖を登録しておく必要があるかも知れにゃい。
/etc/krb5.conf
[libdefaults]
default_realm = NEKO.LOCAL
[realms]
NEKO.LOCAL = {
kdc = ad1.neko.local
}
[domain_realms]
.neko.local = NEKO.LOCAL
domain_realmsの設定は無くても動く気がする。ていうかこれで合ってるのかしら? ケロちゃんのお勉強せずに使って大丈夫にゃのかしら?
/etc/samba/smb.conf
security = ADS
ads server = ad1.neko.local
realm = NEKO.LOCAL
add user script = /usr/sbin/adduser --quiet --disabled-password --gecos "" %u
kinit dom_admin_name@NEKO.LOCAL
net ads join
/etc/init.d/samba restart
これでWinドメインからtest01/domain_passでログオン出来るようににゃる。
意外と簡単。
linux側のユーザアカウントは自動生成される。ちょっとどうかにゃーって気はするのでWinbindとかと組み合わせる手もあるらしい。