後からLVMのパーティションを作成する方法

複数のハードディスクを、LVMを使って一つのパーティションとしてまとめたいと思います。冗長性は皆無なのでご注意を。速さ重視!

したいこと

今回は2つのハードディスク(/dev/sda , /dev/sdb)を使って一つのLVMパーティションを作り上げます。言うまでもなく冗長性はありませんので1つのディスクが死ぬと全部死にます。

それぞれでパーティションを作成する

まずはそれぞれのハードディスクでLVMに組み込みたいパーティションを作成する必要があります。 今回利用する /dev/sda には既に3つのパーティション(/boot など)が作成されていましたので、パーティション番号4で作成しています。但し /dev/sdb については未使用でしたのでパーティション番号は1です。

# fdisk /dev/sda
コマンド (m でヘルプ): n ← パーティションの新規作成
コマンドアクション
   e   拡張
   p   基本パーティション (1-4)
p ← 基本パーティションを指定
選択した領域 4 ← 領域番号を指定
最初 シリンダ (4870-243201, 初期値 4870):  ← そのままエンター
Last シリンダ, +シリンダ数 or +size{K,M,G} (4870-243201, 初期値 243201):  ← そのままエンター
コマンド (m でヘルプ): t ← タイプ変更を指示
パーティション番号 (1-4): 4 ← タイプ変更するパーティション番号を指定
16進数コード (L コマンドでコードリスト表示): 8e ← タイプ(LVM)を指定
コマンド (m でヘルプ): p ← 現状を確認。下記のように作成したパーティションが表示されるはず
~~~略~~~
/dev/sda4            4870      243201  1914394208+  8e  Linux LVM
~~~略~~~
コマンド (m でヘルプ): w ← パーティションを書込

手順は上と同じなので省きますが、引き続き同様に /dev/sdb でパーティション /dev/sdb1 を作成します。

作成が完了したらシステムをリブートしてください。

# reboot

物理ボリューム(PV)を作成する

先ほど作成したパーティションから物理ボリューム(Physical Volume)を作成します。

# pvcreate /dev/sda4
  Physical volume "/dev/sda4" successfully created
# pvcreate /dev/sdb1
  Physical volume "/dev/sdb1" successfully created

作成したPVボリュームを確認します。

# pvdisplay -C
  PV         VG   Fmt  Attr PSize PFree
  /dev/sda4       lvm2 ---  1.78t 1.78t
  /dev/sdb1       lvm2 ---  1.82t 1.82t
# pvdisplay 
  "/dev/sda4" is a new physical volume of "1.78 TiB"
  --- NEW Physical volume ---
  PV Name               /dev/sda4
  VG Name               
  PV Size               1.78 TiB
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               Rhqdpt-lryL-bVeG-ZObb-xVDv-plMf-6Da04S
   
  "/dev/sdb1" is a new physical volume of "1.82 TiB"
  --- NEW Physical volume ---
  PV Name               /dev/sdb1
  VG Name               
  PV Size               1.82 TiB
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               QF1KfH-2EWA-YoeM-Mvgm-XNj8-8t82-onDdCR

問題なく作成されていました。

ボリュームグループ(VG)を作成する

続いてボリュームグループ(Volume Group)を作成します。
作成するボリュームグループの名前は voldata にしています。

# vgcreate voldata /dev/sda4 /dev/sdb1
  Volume group "voldata" successfully created

作成したボリュームグループを確認します。

# vgdisplay -v voldata
    DEGRADED MODE. Incomplete RAID LVs will be processed.
    Using volume group(s) on command line
    Finding volume group "voldata"
  --- Volume group ---
  VG Name               voldata
  System ID             
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  1
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                0
  Open LV               0
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               3.60 TiB
  PE Size               4.00 MiB
  Total PE              944312
  Alloc PE / Size       0 / 0   
  Free  PE / Size       944312 / 3.60 TiB
  VG UUID               ztCeBJ-osuq-BCMM-KA3Z-bbW9-0wiY-cmyomy
   
  --- Physical volumes ---
  PV Name               /dev/sda4     
  PV UUID               Rhqdpt-lryL-bVeG-ZObb-xVDv-plMf-6Da04S
  PV Status             allocatable
  Total PE / Free PE    467381 / 467381
   
  PV Name               /dev/sdb1     
  PV UUID               QF1KfH-2EWA-YoeM-Mvgm-XNj8-8t82-onDdCR
  PV Status             allocatable
  Total PE / Free PE    476931 / 476931

論理ボリューム(LV)を作成する

論理ボリューム(Logical Volume)を作成します。
作成するボリュームグループの名前は voldatalv にしています。 サイズ指定で 100%FREE を指定するので全て使い切る形です。

# lvcreate -l 100%FREE -n voldatalv voldata
  Logical volume "voldatalv" created

作成した論理ボリュームを確認します。

# lvdisplay -C
  LV        VG      Attr       LSize Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  voldatalv voldata -wi-a----- 3.60t                                                    
# lvdisplay /dev/voldata/voldatalv 
  --- Logical volume ---
  LV Path                /dev/voldata/voldatalv
  LV Name                voldatalv
  VG Name                voldata
  LV UUID                2sJBvn-RGfi-Xw4x-KMTv-QPlO-ph9d-vLjIi9
  LV Write Access        read/write
  LV Creation host, time hogesv.lan, 2014-12-05 11:52:36 +0900
  LV Status              available
  # open                 0
  LV Size                3.60 TiB
  Current LE             944312
  Segments               2
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:0

ここまででLVMボリュームの作成が完了です。

作成した論理ボリュームをフォーマットしてマウントする

最後に作成した論理ボリュームをフォーマットしてマウントさせてみます。 最終的にはUUID指定でのマウント設定を追加します。

# mkfs -t ext4 /dev/voldata/voldatalv

フォーマットが完了したらマウントしてみます。

# mount -t ext4 /dev/mapper/voldata-voldatalv /mnt/
# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda2              29G  3.7G   24G  14% /
tmpfs                 1.9G   72K  1.9G   1% /dev/shm
/dev/sda1             190M   55M  125M  31% /boot
/dev/mapper/voldata-voldatalv
                      3.6T   69M  3.4T   1% /mnt

無事にマウントできれば完了です。

自動マウントするように /etc/fstab に記載しますが、ここはUUIDを指定した方がいいので、UUIDを確認してそのIDを記載します。

# blkid /dev/voldata/voldatalv
/dev/voldata/voldatalv: UUID="9df5caf9-7f48-4cb5-b437-3e6d7d72d677" TYPE="ext4"
# vi /etc/fstab
下記を追記
UUID=9df5caf9-7f48-4cb5-b437-3e6d7d72d677 /mnt ext4 defaults 0 0

これですべての作業が完了です。

コメントを残す

メールアドレスが公開されることはありません。