さくらクラウドでルートパーティションの容量を拡張する方法
追記:この手順を実施する場合の注意を記事中下部に追加しました。
あけましておめでとうございます。
訳あってさくらクラウドを使うことになりました。
250Gのディスクを選択してVMを作成したのだけど、さくらが用意したCentOSのイメージ「[public] 20GB CentOS 6.6 64bit (基本セット)」で起動したらOS上で20Gしか認識されていない…。
それもそのはずで、OSイメージは20Gを前提に作成されたものでした。
別途「100G」というのも用意されていたのですが、今回は250Gにしたかったのでなんとか拡張してみました。
(クリティカルな操作なので自己責任で、バックアップ必須!)
VM作成
- 普通にVM作成
- ディスクソース : [アーカイブ(簡単)]
- アーカイブ選択 : [public] 20GB CentOS 6.6 64bit (基本セット)
- ディスクサイズ : [20G]
- 作成後すぐに起動 : [しない]
追加ディスクの作成(本命ディスク)
- 管理画面 [ストレージ] -> [追加]押下
- 以下設定
- ティスクソース : [ブランク]
- ディスクサイズ : [250GB]
- 名前 : 「testvm-250G」
- [作成]押下
拡張作業
- 管理画面 [サーバ] -> 該当VMを選択 -> [詳細] -> [ディスク] -> [接続]押下
- [testvm-250G]を選択して[更新]
- 接続#1に元の[testvm]、接続#2に[testvm-250G]が接続されているのを確認する
- VM起動
- 以下コマンド実行
### 起動ドライブはvda、追加したドライブがvdbとして認識されている # ls /dev/vd* /dev/vda /dev/vda1 /dev/vda2 /dev/vdb ### 中身をコピー(3分半程度、速い…!) # dd if=/dev/vda of=/dev/vdb bs=512M ### パーティションの拡張 # parted /dev/vdb (parted) unit s (parted) print Model: Virtio Block Device (virtblk) Disk /dev/vdb: 524288000s Sector size (logical/physical): 512B/512B Partition Table: gpt Number Start End Size File system Name Flags 1 64s 8400487s 8400424s linux-swap(v1) primary 2 8400488s 41943006s 33542519s ext4 primary boot (parted) rm 2 (parted) mkpart primary 8400488s -1s # ※途中パーティションを修復するか聞いてくるので、F(Fix)を選択する # ※警告が出てきてもyes/Ignoreを選択して進む (parted) print Model: Virtio Block Device (virtblk) Disk /dev/vdb: 268GB Sector size (logical/physical): 512B/512B Partition Table: gpt Number Start End Size File system Name Flags 1 32.8kB 4301MB 4301MB linux-swap(v1) primary 2 4301MB 268GB 264GB ext4 primary (parted) quit # e2fsck -f /dev/vdb2 # resize2fs /dev/vdb2
一旦パーティションを削除して(!)、再度より大きいパーティションを作るというのがキモですね。こんな事して大丈夫なんですねえ。。
元ディスクをVMから外す、動作確認
- 該当VMをシャットダウン
- 管理画面 [サーバ] -> 該当VMを選択 -> [詳細] -> [ディスク] -> [接続]押下
- 元ディスク(接続#1)の▼を選択して[取外し]
- 該当VM起動
- 容量が増えてるか確認
- 必要なければ元のディスクは削除
[root@testvm ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/vda2 243G 1.4G 229G 1% / tmpfs 499M 0 499M 0% /dev/shm
参考
http://knowledge.sakura.ad.jp/tech/925/
http://ubuntuforums.org/showthread.php?t=1389429
一応参考サイトと違うのは、参考サイトはMBRでパーティションが切られているのでfdiskで作業していましたが、CentOS6のイメージだとGPTでパーティションを切っていたため、partedで作業しました。
最初参考サイトを見て、もうちょっとマシな方法がないかと調べたのですが結局この方法となりました。 なんかもうちょっといい方法はないものでしょうかねえ。。
さくらクラウドについて思ったこと
- さくらVPSと比べると割高
- さくらVPSが優秀過ぎる
- とはいえさくらVPSはスケールアップができないのでその点は安心感がある
- さくらVPSとローカルネットワークが繋がれば最高だけど戦略上しなそう
- 石狩第一内のVPSとクラウド(グローバルIP)間の通信はほぼ理論値通り(100Mbps)出た
追記 2015.2.2
この手順ではデータ不整合となる可能性について指摘を受けました。
よく見ると参考サイトのさくらナレッジでも下部に追記がありました(^^;;;
以下引用
[※編集部追記:本手順の際、ファイルシステムをマウント中のまま dd するとコピー先で不整合が発生する可能性があるため、レスキューモードもしくはシングルユーザーモードで実行ください]
確かに起動中のパーティションをddでコピーする場合、作業中に他のプロセスがディスクを書き込む可能性があるため、データ整合性を保証できない可能性があります。私は検証環境として手軽に用意したかったので問題ないですが、ミッションクリティカルな用途の場合は正攻法で行ったほうがいいと思います。