LVMの構築方法

提供:UnixClassWiki
2013年8月15日 (木) 11:29時点におけるHironobu (トーク | 投稿記録)による版 (ページの作成:「== LVM 新しく設定する場合 == ここでは以下の説明をします。 # Linux LVM のIDを持ったパーティションを作成する。 # 論理ボリ...」)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動 検索に移動

LVM 新しく設定する場合

ここでは以下の説明をします。

  1. Linux LVM のIDを持ったパーティションを作成する。
  2. 論理ボリュームグループを作成する。
  3. 論理ボリュームを作成する。
  4. ファイルシステムを構築する。
  5. マウントをする。

現在の多くのディストリビューションはインストール時にLVMをデフォルトで利用するので、一般的には最初から行うことは少ないかも知れません。


fdiskでLVMのパーティション作成

下の操作は/dev/sdc (サイズ512MB) のブロックデバイスに対してパーティションを設定し、そこにLVMのIDを割り当てる作業です。 すべてをプライマリパーティションとして使うことににして設定し、そこにLinux LVMである8e (16進数)のID番号を割り当てます。

# fdisk /dev/sdc
...
Command (m for help): n
Command action
  e   extended
  p   primary partition (1-4)
  p<RET>
  Partition number (1-4): 1<RET>
  First cylinder (1-65, default 1): <RET>
  Using default value 1
  Last cylinder, +cylinders or +size{K,M,G} (1-65, default 65):<RET>
  Using default value 65
  Command (m for help): t<RET>
  Selected partition 1
  Hex code (type L to list codes): 8e<RET>
  Changed system type of partition 1 to 8e (Linux LVM)
  Command (m for help): w<RET>
  ...
  # 


論理ボリュームグループ作成

現在 /dev/sdc1 のパーティションが作成されおり、そのIDはLinux LVM (8e)になっています。 それを使ってコマンド vgcreate を用いてVGを作成します。VG名はここでは vg_ext とします。 ここでのPVは、用意しているパーティション /dev/sdc1 にあたります。

 # vgcreate vg_ext /dev/sdc1
 No physical volume label read from /dev/sdc1
 Physical volume "/dev/sdc1" successfully created
 Volume group "vg_ext" successfully created

VGの内容を確認するにはvgdisplayを使います。

# vgdisplay vg_ext
 --- Volume group ---
 VG Name               vg_ext
 System ID             
 Format                lvm2
 Metadata Areas        1
 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                1
 Act PV                1
 VG Size               508.00 MiB
 PE Size               4.00 MiB
 Total PE              127
 Alloc PE / Size       0 / 0   
 Free  PE / Size       127 / 508.00 MiB
 VG UUID               KHZvkW-Adlo-hjNO-xZOO-cHeV-lJPi-8YNBEk

PE (Physical Extent)のサイズが4.00 MiBとなっているのはデフォルトです。 1つの LV (Logical Volume 論理ボリューム)に割り当はPEの単位で割り当てられます。 つまり現在のFree PEの値が、VGからLVに割り当てることが出来る最大の値です。


LVに割り当てが出来るPEの数は65536 (2^16)までという上限があります。 したがってPEのサイズが 4 MiBということはLVの最大の値は256GBということになります。 256GBより大きなLVが欲しい場合は、VGを作成する際にPEの値を大きくしておく必要があります。

vgcreateを実行する際にオプション-s (もしくは --physicalextentsize ) を利用します。 32mを指定した場合、最大のLVは2TiBとなります。


論理ボリューム作成

LV を作成するにはコマンドlvcreateを利用します。 -n LV名 -L ボリュームサイズ そしてVG名のオプションを与えます。


 # lvcreate -n lv_ext_01 -L 256MB vg_ext
 Logical volume "lv_ext_01" created

ブロックデバイス /dev/vg_ext/lv_ext_01 が作成されます。


ファイルシステム作成とマウント

ext4のファイルシステムを/dev/vg_ext/lv_ext_01上に作成します。

 # mkfs -t ext4 /dev/vg_ext/lv_ext_01
 mke2fs 1.41.12 (17-May-2010)
 Filesystem label=
 OS type: Linux
 Block size=1024 (log=0)
 Fragment size=1024 (log=0)
 Stride=0 blocks, Stripe width=0 blocks
 65536 inodes, 262144 blocks
 13107 blocks (5.00%) reserved for the super user
 First data block=1
 Maximum filesystem blocks=67371008
 32 block groups
 8192 blocks per group, 8192 fragments per group
 2048 inodes per group
 Superblock backups stored on blocks: 
   8193, 24577, 40961, 57345, 73729, 204801, 221185
 Writing inode tables: ....

ディレクトリ/mnt/lv_ext_01を作成し、ここにマウントしてみます。

 # mkdir  /mnt/lv_ext_01
 # mount /dev/vg_ext/lv_ext_01 /mnt/lv_ext_01/
 # df 
 Filesystem           1K-blocks      Used Available Use% Mounted on
 /dev/mapper/vg_c0-lv_root
                       6781916   2126116   4314236  34% /
 tmpfs                   961256        16    961240   1% /dev/shm
 /dev/sda1               495844     91135    379109  20% /boot
 /dev/mapper/vg_ext-lv_ext_01
                       253871     10254    230510   5% /mnt/lv_ext_01