今回は、ESXi の設定の永続化についてです。
ESXiはVisorFSという仕組みをもっていて、
基本的に稼働中のハイパーバイザは、再起動するとリセットされる方針のようです。
場所(パーティションやディレクトリ)によっては、Linuxの /proc のような感じで
再起動すると初期化されてしまいます。
ただし、ESXiの設定を格納している /etc まで再起動ごとに初期化されると問題なので
定期的に /sbin/auto-backup.sh スクリプト(とそこから呼び出されるスクリプト)で
ブートバンクと呼ばれる領域に自動バックアップされています。
ESXiのハイパーバイザは、起動時にブートバンクと呼ばれるディスク領域から読みだされるため
この処理により設定が永続化されます。
これは、ESXiのCRONで毎時01分に実行されています。
CRONのスケジュールは、/var/spool/cron/crontabs/root ファイルに記載されています。
~ # vmware -v
VMware ESXi 5.1.0 build-914609
~ # cat /var/spool/cron/crontabs/root
#min hour day mon dow command
1 1 * * * /sbin/tmpwatch.py
1 * * * * /sbin/auto-backup.sh
0 * * * * /usr/lib/vmware/vmksummary/log-heartbeat.py
*/5 * * * * /sbin/hostd-probe
毎時01分に実行されていることが、Syslogにも記録されています。
~ # grep auto-backup /var/run/log/syslog.log | tail
2013-01-19T08:01:01Z crond[2456]: crond: USER root pid 634074 cmd /sbin/auto-backup.sh
2013-01-19T09:01:01Z crond[2456]: crond: USER root pid 636576 cmd /sbin/auto-backup.sh
2013-01-19T10:01:01Z crond[2456]: crond: USER root pid 639154 cmd /sbin/auto-backup.sh
2013-01-19T11:01:01Z crond[2456]: crond: USER root pid 641683 cmd /sbin/auto-backup.sh
2013-01-19T12:01:01Z crond[2456]: crond: USER root pid 644204 cmd /sbin/auto-backup.sh
2013-01-19T13:01:01Z crond[2456]: crond: USER root pid 646718 cmd /sbin/auto-backup.sh
2013-01-19T14:01:01Z crond[2456]: crond: USER root pid 649302 cmd /sbin/auto-backup.sh
2013-01-19T15:01:01Z crond[2456]: crond: USER root pid 651831 cmd /sbin/auto-backup.sh
2013-01-19T16:01:01Z crond[2456]: crond: USER root pid 654336 cmd /sbin/auto-backup.sh
2013-01-19T17:01:01Z crond[2456]: crond: USER root pid 657344 cmd /sbin/auto-backup.sh
1時間に1回だけだと物足りないというケースもあると思うので、
ためしに手動でも実行してみました。
今回は、わざとsshの設定ファイルを変更した後に、スクリプトを実行しています。
~ # vi /etc/ssh/sshd_configPasswordAuthentication no
↓(編集)
PasswordAuthentication yes
/etc 配下のファイルに変更があると diff による差分も画面に表示されます。
~ # /sbin/auto-backup.sh
--- /etc/ssh/sshd_config
+++ /tmp/auto-backup.658316//etc/ssh/sshd_config
@@ -24,7 +24,7 @@UsePAM yes
# only use PAM challenge-response (keyboard-interactive)
-PasswordAuthentication no
+PasswordAuthentication yes ★ここが差分
Banner /etc/issueSubsystem sftp /usr/lib/vmware/openssh/bin/sftp-server
Saving current state in /bootbank
Clock updated.
Time: 17:13:12 Date: 01/19/2013 UTC
ちなみに、上記の直後にスクリプトを再度実行すると
ファイルに一切変更がないので何も表示されません。
~ # /sbin/auto-backup.sh~ #
以上、ESXi の設定情報の永続化でした。