Linuxでgrowpartを利用しないディスク拡張方法(partxコマンド利用)

Linuxサーバ

RHEL系(CentOS)
---
前回growpartコマンド利用によるディスク拡張する方法を
を説明しましたが、今回はgrowpartを利用しない方法で
ディスク拡張を行います。

その方法は
partxコマンドを使用して拡張します。

■利点
 その1
  growpartはフリーのパッケージインストールが必要となり
  サポートなどの関係で導入できないケースが発生する場合が
  あります。
 その2
  パッケージ導入ができない環境で利用が可能となります。
partxコマンドはLinux標準のコマンドのため必ず利用できる
  コマンドとなっております。

partxというコマンドを利用して
サーバの停止をせず(下記「注1」を参照)
簡単に時間をかけずに安全にディスク拡張する方法を説明します。

※対象のファイルデバイスをアンマウントせずに拡張できます。
 umount /dev/sdXY ->しなくても拡張可能

【手順】(全体の流れ)
  1. ディスクデバイスの拡張
    (vmware、VirtualBox、KVMなど仮想環境化で適宜デバイスの拡張)
  2. fdiskによるファイルシステム再構成
  3. ファイルシステムのディスクの拡張(partxコマンド実行)
  4. 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」コマンド
#
->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とパーティション番号をつける


コメント

タイトルとURLをコピーしました