注意点
拡張の際に、一度拡張対象のデータストア上で稼働している仮想マシンを全て停止する必要がある。
手順
##1. 新旧ディスクをサーバ(物理筐体)に接続する
ATAでもUSBでも、空いてるポートに接続できればOK
##2. ディスクブートでUbuntu起動
UbuntuでもVineでも、好きなLinuxのLive CD/DVDからディスクブートで起動する
##3. ディスク内容をコピーする
・新旧デバイスの確認
今回は旧デバイスが「/dev/sda」、新デバイスが「/dev/sdb」でした
# ls -l /dev/sd*
brw-rw---- 1 root disk 8, 0 7月 11 16:12 /dev/sda
brw-rw---- 1 root disk 8, 1 7月 11 16:12 /dev/sda1
brw-rw---- 1 root disk 8, 2 7月 11 16:12 /dev/sda2
brw-rw---- 1 root disk 8, 5 7月 11 16:12 /dev/sdb
・ddコマンドでディスク内容をコピー
※ifとofは間違えると取り返しがつかないので注意
※ブロックサイズは適宜指定(512とかが確実かも)
# dd if=/dev/sda of=/dev/sdb bs=8192 conv=noerror,sync
##4. ディスク交換
旧ディスクを外して、新ディスクのみにして起動する。
##5. ESXiのSSHをオンにする
- F2 #ESXiコンソールから、F2で設定モードに入る
- [Troubleshooting Options] Enter
- [Enable ESXi Shell] Enter
- [Enable SSH] Enter
- Esc
- Esc
##6. データストアを拡張する
・ESXi Shell または SSHでESXiへ接続する
ESXi Shell > ESXiコンソールのトップ画面で「Alt+F1」
SSH > TeraTermなどでESXiのIPへSSH接続
※認証はチャレンジレスポンスにする必要有
・パーティションの拡張
データストアに紐付いているディスクを確認する
# vmkfstools -P "/vmfs/volumes/<データストア名:datastore1 など>"
VMFS-<VMFSバージョン> file system spanning 1 partitions.
File system label (if any): <データストア名>
Mode: public
Capacity <パーティション容量> (~ file blocks * ~), <空き容量> (~ blocks) avail
UUID: <新データストアハッシュ>
Partitions spanned (on "lvm"):
<ディスク名>
ディスクのパーティション内容を確認する
出力結果の左から順に パーティション番号, 開始セクタ, 終了セクタ です。
# partedUtil get "/vmfs/devices/disks/<ディスク名>"
182401 255 63 2930277168
1 2048 2930277134 0 0
拡張可能な領域(新しい終了セクタ)の確認 (ESXi5以上のみ)
# partedUtil getUsableSectors "/vmfs/devices/disks/<ディスク名>"
34 2930277134
パーティションの拡張
# partedUtil resize "/vmfs/devices/disks/<ディスク名>" <パーティション番号> <開始セクタ> <新しい終了セクタ>
# echo $?
0
・ファイルシステムの拡大
- vSphere Clientでログインする
- [構成]タブを開く
- [データストア]を表示する
- 拡張したいデータストア識別名を右クリックし、削除する
- [すべてを再スキャン]を実行する
- 拡張したいデータストア識別名を右クリックし、プロパティを選択する
- ボリュームのプロパティで[拡大]ボタンをクリックする
- 拡大する
##7. データストア紐づけを修正する
・新データストアのハッシュ値を確認する
# ls -l
~~~省略~~~
drwxr-xr-t 1 root root 4340 Jul 11 02:05 57********
lrwxr-xr-x 1 root root 35 Jul 12 08:46 <データストア名> -> 57********
・旧データストアのハッシュ値を確認する
実行結果から /vmfs/volumes/<旧データストアのハッシュ>/ を確認
# find /vmfs/volumes/<新データストアのハッシュ>/ -name "*.vmx" -type f -print | xargs grep derivedName
/vmfs/volumes/57********/testvm/testvm.vmx:sched.swap.derivedName = "/vmfs/volumes/52********/testvm/testvm-8e*****.vswp"
・旧データストアへのパス設定を新データストアへ置換する
間のgrep -l はなんとなくです
find . -name "*.vmx" -type f -print | xargs grep -l <旧データストアのハッシュ> | xargs
sed -i "s/<旧データストアのハッシュ>/<新データストアのハッシュ>/g"
##8. 仮想マシンを起動してみる
無事起動できたら、ESXi の SSHアクセスを無効化する。
なお、仮想マシン起動時に仮想マシンをコピーしたかを聞かれたら、「I move it./移動しました」を選択する。