LVMの構築方法

提供:UnixClassWiki
2015年7月27日 (月) 17:35時点におけるHironobu (トーク | 投稿記録)による版 (→‎論理ボリューム作成)
ナビゲーションに移動 検索に移動

追加するだけの場合は LVMの追加方法


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に割り当てることが出来る最大の値です。


lvm(旧フォーマット)ではLVに割り当てが出来るPEの数は65536 (2^16)までという上限がありました。 現在使われているlvm2ではPV/LV あたりの最大エクステント数に制限はありません。


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



目次へ あるいは Linux LVM