RHEL系(CentOS)
---
前回growpartコマンド利用によるディスク拡張する方法を
を説明しましたが、今回はgrowpartを利用しない方法で
ディスク拡張を行います。
その方法は
partxコマンドを使用して拡張します。
■利点
その1
growpartはフリーのパッケージインストールが必要となり
サポートなどの関係で導入できないケースが発生する場合が
あります。
その2
パッケージ導入ができない環境で利用が可能となります。
partxコマンドはLinux標準のコマンドのため必ず利用できる
コマンドとなっております。
partxというコマンドを利用して
サーバの停止をせず(下記「注1」を参照)に
簡単に時間をかけずに安全にディスク拡張する方法を説明します。
※対象のファイルデバイスをアンマウントせずに拡張できます。
umount /dev/sdXY ->しなくても拡張可能
【手順】(全体の流れ)
- ディスクデバイスの拡張
(vmware、VirtualBox、KVMなど仮想環境化で適宜デバイスの拡張) - fdiskによるファイルシステム再構成
- ファイルシステムのディスクの拡張(partxコマンド実行)
- ext4(xfs)領域の拡張
【手順1】(ディスクデバイスの拡張)
- vmware上の仮想サーバの場合
-->「vSphereクライアント」
- VirtualBox上の仮想サーバの場合
-->「仮想メディアマネージャー」
- KVM上の仮想サーバの場合
-->「qemu-img resize」コマンド
それぞれでディスクデバイスを拡張してください。
注1
サーバ停止しないとディスクデバイスが拡張できない場合は仮想サーバの停止が必要となります。
※必ずしも、仮想サーバ停止(サービス停止)せずにディスク拡張ができるとは限りませんので、仮想サーバの環境に合わせて「停止なし・停止あり」を判断して作業をしてください。
Vmware:仮想サーバの停止不要
KVM:仮想サーバの停止不要
VirtualBox:仮想サーバの停止必要
拡張前のデバイスの容量(200M)
拡張後のデバイスの容量(250M)
【手順2】fdiskによるファイルシステム再構成
手順1でのデバイス拡張後にfdiskによるデバイス再構成を実施します。
※growpartコマンドを利用する場合は不要
例
/dev/sdg1を拡張したい場合
#fdisk /dev/sdg
※sdgでsdg1としない
下記画像にあるように
#「p」コマンド
にて
「Units」と「始点」を確認する
「Units]はsectorsである事
「始点」は確認した値を控える(今回の場合だと「2048」
※「Units」がcylindersだった場合は「u」コマンドで切り替えできます。
---
#「d」コマンド
#「p」コマンド
デバイスが削除されたことを確認
※今回だと「/dev/sdg1」が削除されていること
---
次にディスクデバイスを再構成をします。
※200Mを250Mへデバイス変更します。
#「n」コマンド
#「p」コマンド
#1
->defaultが「1」なので、入力なしで実行(エンター)でもよい
#2048
->先ほど控えた「始点」を入力(間違えないように注意)
defaultが「2048」なので、入力なしで実行(エンター)でもよい
#511999
->defaultが「511999」なので、入力なしで実行(エンター)でもよい
この値は拡張するので、最大値である数値を入力せずに
実行する方がよい
#「P」コマンド
->/dev/sdg1の「始点」と「Units」を確認
■チェックポイント1
「始点」の設定を間違えると200Mの時に保存していたデータが
みれなくなるります。
誤って「始点」の設定を間違えてもmkfsにてファイルフォーマット
をしなければ、データが消えたわけではないので、
再度、「始点」の設定をし直せば保存されていたデータは見れる
ようになります。
#「w」コマンド
->/dev/sdg1を再構成して保存
■チェックポイント2
/dev/sdg1のアンマウントをしていないので再構成が反映されて
いません。
そこで、次の手順3のpartxで再構成の反映を実施します
※アンマウントせずに、ディスクデバイス(/dev/sdg1)を拡張します。
【手順3】(ファイルシステムのディスクの拡張(partxコマンド実行))
手順2のfdiskにてディスクデバイスを再構築したら
partxコマンドで反映します。
#partx -v -u /dev/sdg
※sdg1としないsdgとする
-v:詳細モード
-u:更新(update)
-a:追加(add)※今回利用していません
【手順4】ext4(xfs)領域の拡張
ファイルシステムが
ext4とxfsどちらのフォーマットかを以下のコマンドで確認
#blkid
■ext4フォーマットの場合
resize2fs デバイス名
例
\dev\sdg1を拡張したい場合
#resize2fs /dev/sdg1
※/dev/sdg1のようにsdg1とパーティション番号をつける
以下の画像はext4のファイルシステムで拡張前と拡張後の状態を
表示しています。
以下、ファイルシステムが200Mのままで拡張されていない状態
以下、partxコマンドを実行し
resize2fsコマンドにてファイルシステムが250Mに拡張されている状態
補足
■xfsフォーマットの場合
xfs_growfs デバイス名
例
/dev/sdg1を拡張したい場合
#xfs_growfs /dev/sdg1
※/dev/sdc1のようにsdc1とパーティション番号をつける
コメント