VMware vSphere ESXi 上でシンディスク肥大化して、何とかVMFS上で縮小させるまでの
覚書です。
※実施前には必ずクローン又はovfやその他バックアップを取得してから
お決まりですが、個人の責任で実施してください。
※可能であればクローンで一度リハーサル実施してください。
※各種コマンド実施後はディスクI/Oを非常に使います。パフォーマンスの
影響の無い時間帯で実施することをお勧めします。
■原因について
Symantec Endpoint Protection Manager 12 (SEPM)をインストールしているサーバで
ウィルスパターンの世代数を3から30へ変更した際にある程度デ ィスクが肥大化するとは
思っていたが、 ウィルスパターン自体は30GB程度しか大きくならないので安心 していた所
なんと、 データベースバックアップが1世代30GBくらいで5世代取られ ており
気づいたらディスク全体が300GB弱になっていた。
■対策
とりあえず、 SEPMのDBバックアップ自体そんなに必要ないので1世代とし て
バックアップDBも1世代を残し削除。
その後バックアップ世代も1世代へ変更。
そうする事で、ディスク全体の容量は150GB位まで下がり、 一安心。と思いきや
VMFS上のディスクはシンディスクで構成しており、 一度巨大化したディスク領域は
そのままでは元に戻らない。
Windows上で確認すると、 空き領域は137GBとなっているが、
ボリュームの縮小を実行しても殆ど小さくならない。
OSの重要データが後半ブロックに書かれている事が原因らしい。
ESXiのVMFS上ではフルで使っている事になっている。
さてどうした物かと、色々考える。
■シンディスク圧縮へ試行錯誤
sdelete.exe を使って空き領域に0を書き込みボリュームの圧縮が出来るか確認
ダウンロード先MSサイト
対象の仮想サーバのコマンドプロンプトにて
「sdelete.exe -z c: 」と実行する。
Cドライブの空き領域に0が書き込まれます。
このまま、ボリュームの縮小が出来るか確認。
やっぱりダメでした。
そんで、一度仮想サーバをシャットダウンして、 ESXiホストのSSHを有効にして
SSHでログインします。
その後、まずは、現在の容量を確認。
# du -h EPSRV01-flat.vmdk
289.2G EPSRV01-flat.vmdk
現在の実際のサイズは289.2GBだという事が分かる。
因みにlsで確認しても全体容量しか確認出来ません。
# ls -alh
-rw——- 1 root root 300.0G Jan 23 15:54 EPSRV01-flat.vmdk
-rw——- 1 root root 622 Jan 23 15:53 EPSRV01.vmdk
ESXiのコマンドラインより以下のコマンドを発行
※ここで注意点が、一番巨大なEPSRV01-flat. vmdkでは無く、
0バイトの仮想サーバ定義ファイルっぽいやつを指定しないといけ ない点。
# vmkfstools -K EPSRV01.vmdk
vmfsDisk: 1, rdmDisk: 0, blockSize: 1048576
Hole Punching: 100% done.
さて、小さくなったかな~と思ってVMFS容量を確認すると、 何と減ってない。
# du -h EPSRV01-flat.vmdk
298.0G EPSRV01-flat.vmdk
と言うより最大容量まで増えている。
OSの重要ファイルがある後半が削除出来ないので結局小さくなら ないという事だと
思われるので、 パーテーションサイズを小さくすればいいんだと思い、
仕方が無いので、KNOPPIXでも久々に使おうかと。。
最初はknoppix_v7.0.2を使用して起動。
コンソールを開き
knoppix@Microknoppix $ su
root@Microknoppix # gparted
さてボリュームのリサイズしようと思った所、
リサイズの項目がグレーアウトして使えない。何故? って色々確認するが分からない。
以前はNTFSでも使えてたのに。
という事で
バージョンを下げてみる事に、今回は「knoppix_v6. 7.1」で起動。
今度も同じく
コンソールを開き
knoppix@Microknoppix $ su
root@Microknoppix # gparted
今度は問題なくリサイズの項目が使えるようになっている!!
ギリギリだと一時ファイルも作れなくなってしまうので、まずは、 少し増やして
適用する画面で確認が来るので、適用しちゃいましょう。
あとは、移動リサイズが終わるのを待つのみ。
移動を必要とするファイルの容量にもよりますが、 そこまで時間はかからないはずです。
後ろのパーテーションが無くなったので、やった!
シャットダウンを実施して、 今回こそは小さくなるだろうと思いもう1度ESXiコンソールよ り
# vmkfstools -K EPSRV01.vmdk
vmfsDisk: 1, rdmDisk: 0, blockSize: 1048576
Hole Punching: 100% done.
でも容量変わらず。
# du -h EPSRV01-flat.vmdk
298.0G EPSRV01-flat.vmdk
結局空き領域に0クリアしておかないといけないので、 という事でまたもや
仮想マシンを起動。
多分Linuxで無理やりパーテーション変更したのでチェックデ ィスクが走ります。
今回は無視せず、ちゃんとチェックさせましょう。
未割当領域が出来ている事をWindowsから確認
クリアする為にはドライブパスがいるので、とりあえず、 Eドライブ作成。
※パスは何でも良い。DがCDドライブなのでEという事で。
コマンドプロントを起動
C:\>sdelete.exe -z e:
を実行します。
完了しました。
Eドライブパーテーションは、削除します。
この状態で、一度シャットダウン実施します。
ESXiホストへSSHで接続します。
再度容量確認します。
# du -h EPSRV01-flat.vmdk
292.3G EPSRV01-flat.vmdk
圧縮コマンドを実行します。
# vmkfstools -K EPSRV01.vmdk
vmfsDisk: 1, rdmDisk: 0, blockSize: 1048576
Hole Punching: 100% done.
完了後再度容量確認します。
# du -h EPSRV01-flat.vmdk
158.6G EPSRV01-flat.vmdk
無事容量が減りました。
容量圧縮前
圧縮後
再度ゲストサーバを起動して
ディスクの拡張で容量増やして、作業完了!
ここまでやるの疲れたな~。
1つ1つの作業に時間がかかるので、結局夜中や休み中心でした。
1つ1つの作業に時間がかかるので、結局夜中や休み中心でした。
Related Articles
No user responded in this post
Leave A Reply
Please Note: Comment moderation maybe active so there is no need to resubmit your comments