つぶねこ
@もじらもーど。
主にdatastoreをnfsにしてるとバックアップ方法としてesxのサービスコンソールからコピーする以外にも、nfs鯖からバックアップ鯖へ直接転送すればいいんじゃにゃいの、ってにゃ話ににゃってくる。
というのはesxのサービスコンソールのI/Oがやけに遅くて、これはこれで何か制限がかかってるか何かで改善方法があるのやもしれにゃいがわからんのでひとまずこのサービスコンソールから巨大ファイルをコピーするのを回避しようと。
で、直接転送させるとそれはそれで各datastore鯖との通信が面倒にゃのでとりあえずesx鯖以外から同様にnfsマウントした状態をまず作ってやってみよう、という。
てことで、esx同様にdatastore鯖とバックアップ鯖がnfs経由で見えてるLinuxマシンを1つ用意。ここからesx側にコマンドを投げてsnapshot.createしたりとかして、ファイルコピーしてやろうと。
したのだが、snapshot作って別PCからnfsで全ファイルコピーすると、コピー元のvmで異常が起きる。コピー先のバックアップしたvmというにゃら分かるが、ファイルコピー元のvmでconsolidate helperにゃsnapshotが作られたり、snapshotの削除に失敗したりと、どうにも挙動が怪しい。vmdkのファイルタイムスタンプかと思ったが違う気味。
いくつか試して分かったのは、とりあえず一番親のvmdkや、vmsn類、logにゃんかは別PCからコピーしてOK。snapshotを構成するvmdk類が触っちゃダメぽい。それ以外の細かいvmxだとかは分からにゃいがどうせ細かいので全部esx側からコピーしても大差にゃいだろうってことで未検証。
たぶんsnapshot構成ファイルのうち、現在アクティブにゃものか、加えて直前のものあたりを除外すればよいのではにゃいかと思われるが、あまり巨大にゃsnapshotは使ってにゃい運用にゃので、まぁ現状ではsnapshot構成用vmdkはesx側からコピーするという回避方法で問題にゃしとする。
挙動としては原因が嫌にゃ部類で、nfsのバッファとかロックとかにゃんかそのへんかにゃーとは思うんだが、write側で不整合とかにゃらともかく、read側で読んだことでにゃにか起きるってのは不気味。どこかで排他ににゃってるんだろうか。うーむ
▼ ESX 関連記事