Takuya71 のぶろぐ

外資系ソフトウェア会社で働いてます、認定スクラムマスター

Fedora 16 のLVM 領域に 新規に追加したハードディスクを追加して領域の拡張

Fedoraのマシンですが、
/home の領域の空き容量が少なくなってきたので 余っている 250GB のHDDを追加しました。

/home については LVMで構成されているので、
新しく250GBのHDDを追加し、その追加した領域の半分を /home のボリュームグループに追加を行いたいと思います。
今は 冗長構成は考慮せず、追加したHDDの領域を追加する形態をとります。
一般的に JBOD と呼ばれるものでしょうか。

LVM は

  • PV(Physical Volume)
  • VG(Volume Group)
  • LV(Logical Volume)

という3つのもので構成されています。

追加してHDDを/homeの領域として追加する手順の概要は

  1. fdisk で 追加したHDDにパーティション作成
  2. PVの作成
  3. VGの拡張
  4. LVの拡張
  5. ファイルシステムのサイズ変更

という手順となります。

fdisk の実行

新しく追加した HDD /dev/sdb にたいして fdiskを実行し、
LVMの領域としてパーティションを設定します。

$ sudo fdisk /dev/sdb

コマンド (m でヘルプ): n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
パーティション番号 (1-4, 初期値 1): 1
最初 セクタ (2048-490232638, 初期値 2048):
初期値 2048 を使います
Last セクタ, +セクタ数 or +size{K,M,G} (2048-490232638, 初期値 490232638):
初期値 490232638 を使います

コマンド (m でヘルプ): t
選択したパーティション 1
16進数コード (L コマンドでコードリスト表示): 8e
パーティションのシステムタイプを 1 から 8e (Linux LVM) に変更しました

コマンド (m でヘルプ): p

Disk /dev/sdb: 251.0 GB, 250999111168 bytes
ヘッド 255, セクタ 63, シリンダ 30515, 合計 490232639 セクタ
Units = セクタ数 of 1 * 512 = 512 バイト
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
ディスク識別子: 0x3143fb36

デバイス ブート 始点 終点 ブロック Id システム
/dev/sdb1 2048 490232638 245115295+ 8e Linux LVM

コマンド (m でヘルプ): w
パーティションテーブルは変更されました!

ioctl() を呼び出してパーティションテーブルを再読込みします。
ディスクを同期しています。

PV作成

pvcreate を実行

pvcreate を実行し、PVを作成します。

$ sudo pvcreate /dev/sdb1
  Writing physical volume data to disk "/dev/sdb1"
  Physical volume "/dev/sdb1" successfully created
pvdisplay の実行

作成されたかな

$ sudo pvdisplay
  --- Physical volume ---
  PV Name               /dev/sda3
  VG Name               vg_emily
  PV Size               148.56 GiB / not usable 29.00 MiB
  Allocatable           yes (but full)
  PE Size               32.00 MiB
  Total PE              4753
  Free PE               0
  Allocated PE          4753
  PV UUID               BEB8pU-9hoZ-jzsi-3VN2-F8SP-evAw-Vp18ah
   
  "/dev/sdb1" is a new physical volume of "233.76 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sdb1
  VG Name               
  PV Size               233.76 GiB
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               vof1KO-Q8pR-h1qL-hixN-xZOl-wlbG-wc8gfn

うまく出来てます。

VG拡張

vgdisplay の実行

VGの表示

$ sudo vgdisplay
  --- Volume group ---
  VG Name               vg_emily
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  4
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                3
  Open LV               3
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               148.53 GiB
  PE Size               32.00 MiB
  Total PE              4753
  Alloc PE / Size       4753 / 148.53 GiB
  Free  PE / Size       0 / 0   
  VG UUID               6NdxHb-2swy-yVJB-oHhC-MUFJ-tRYU-MOrzFO

VG名は vg_emily です。

VG の拡張

vgextend コマンドを実行し VGを拡張します。

$ sudo vgextend vg_emily /dev/sdb1
  Volume group "vg_emily" successfully extended

拡張されたか確認

$ sudo vgdisplay

--- Volume group ---
VG Name vg_emily
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 5
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 3
Open LV 3
Max PV 0
Cur PV 2
Act PV 2
VG Size 382.28 GiB
PE Size 32.00 MiB
Total PE 12233
Alloc PE / Size 4753 / 148.53 GiB
Free PE / Size 7480 / 233.75 GiB
VG UUID 6NdxHb-2swy-yVJB-oHhC-MUFJ-tRYU-MOrzFO

追加したディスクの分 Free PE / Size が増えてます。

LV拡張

LV の拡張

lvextend コマンドを実行してLVを拡張します。
今回は 追加したディスクの半分の容量分 拡張します。
全部追加するなら +100%FREE とします。

$ sudo lvextend -l +50%FREE /dev/mapper/*_home
  Extending logical volume lv_home to 205.62 GiB
  Logical volume lv_home successfully resized

ファイルシステムのサイズ変更

resize2fs の実行

resize2fs を実行して ファイルシステムの認識しているサイズを拡張したサイズにします。

$ sudo resize2fs /dev/mapper/*_home
resize2fs 1.41.14 (22-Dec-2010)
Filesystem at /dev/mapper/vg_emily-lv_home is mounted on /home; on-line resizing required
old desc_blocks = 6, new_desc_blocks = 13
Performing an on-line resize of /dev/mapper/vg_emily-lv_home to 53903360 (4k) blocks.
The filesystem on /dev/mapper/vg_emily-lv_home is now 53903360 blocks long.

無事サイズの変更が終了

拡張後の PV,VG,LV の結果

PV の結果
$ sudo pvscan
  PV /dev/sda3   VG vg_emily   lvm2 [148.53 GiB / 0    free]
  PV /dev/sdb1   VG vg_emily   lvm2 [233.75 GiB / 116.88 GiB free]
  Total: 2 [382.28 GiB] / in use: 2 [382.28 GiB] / in no VG: 0 [0   ]
VG の結果
$ sudo vgscan
  Reading all physical volumes.  This may take a while...
  Found volume group "vg_emily" using metadata type lvm2
LV の結果
$ sudo lvscan
  ACTIVE            '/dev/vg_emily/lv_swap' [9.78 GiB] inherit
  ACTIVE            '/dev/vg_emily/lv_home' [205.62 GiB] inherit
  ACTIVE            '/dev/vg_emily/lv_root' [50.00 GiB] inherit