42.2. ロジカルボリュームの作成

ロジカルボリュームは、ボリュームグループ(仮想ディスク)上に作成されたパーティションです。作成したロジカルボリュームは、通常のパーティションと同様にマウントして使用することができます。ロジカルボリュームを作成する手順は以下のとおりです。

  1. フィジカルボリュームの作成

  2. ボリュームグループ(仮想ディスク)の作成

  3. 作成したボリュームグループにロジカルボリューム(パーティション)を作成

作成したフィジカルボリュームには、フィジカルエクステントと呼ばれるデータブロックが複数作成され、データはこのフィジカルエクステントに格納されます。ボリュームグループ上に作成するロジカルボリュームは、このフィジカルエクステントの集合体であるといえます。そして、ロジカルボリュームを構成するフィジカルエクステントは、ボリュームグループを構成しているどのフィジカルボリュームに存在していても構いません。これが、複数のディスク、またはパーティションで構成したボリュームグループに自由にロジカルボリュームを作成しサイズを変更したり、新たにディスクを追加して仮想ディスクのサイズを容易に拡大できる理由です。

ここでは、Turbolinux 10 Server のインストール後に、新たにロジカルボリュームを作成するまでの手順を解説します。

モジュールの読み込みとデバイスの作成

Turbolinux 10 Server のインストール後に、はじめて LVM の設定を行う場合は、Device-Mapper のモジュールである dm-mod を modprobe コマンドで読み込みます。

# modprobe dm-mod

次に、Device-Mapper が使用するデバイスファイルである /dev/mapper/control を作成します。このデバイスファイルを作成するための devmap_mknod.sh スクリプトが用意されていますので、以下のように実行しておきます。

# /sbin/devmap_mknod.sh
Creating /dev/mapper/control character device with major:10 minor:63.

ティップ

Turbolinux 10 Server のインストール時に LVM の設定を行った場合、これらの処理は初期化スクリプト(/etc/rc.sysinit)により自動的に行われています。

ファイルシステムのタイプを変更

LVM で管理するパーティションを用意します。はじめに、通常のパーティションを作成するときと同様に fdisk でパーティションを確保してください。その後、以下のようにファイルシステムのタイプを 8e(Linux LVM)へ変更します。以下の例では、/dev/sdb1 のタイプを変更しています。

# fdisk /dev/sdb

The number of cylinders for this disk is set to 1116.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
   (e.g., DOS FDISK, OS/2 FDISK)

Command (m for help): t
Selected partition 1
Hex code (type L to list codes): 8e

Command (m for help): p

Disk /dev/sdb: 9184 MB, 9184760320 bytes
255 heads, 63 sectors/track, 1116 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1        1116     8964238+  8e  Linux LVM

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.
フィジカルボリュームの作成

LVM 用に設定したパーティションを LVM で使用する物理的なパーティション(フィジカルボリューム)として認識させるために、以下のコマンドを実行します。

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

複数のパーティションをフィジカルボリュームとして追記する場合は、上記手順を繰り返すか、スペースで区切り、複数のパーティションを指定してください。フィジカルボリュームの作成が終了したら、次にこれらのフィジカルボリュームを使用するボリュームグループを作成します。

ボリュームグループの作成

仮想ディスクとなるボリュームグループを作成します。ここでは、ボリュームグループの名前を vg_new としています。ボリュームグループに複数のフィジカルボリュームを追加する場合は、スペースで区切り指定します。

注意

ボリュームグループの名前の先頭には、vg_ を付けることを推奨します。Turbolinux 10 Server の /etc/rc.sysinit は、/etc/fstab に /dev/vg_ の文字列を見つけると、dm-mod モジュールを自動的に読み込み、システムに設定されてる LVM を有効にするための処理を行います。vg_ を付けなかった場合、 LVM はシステムの起動時に有効にならないため、/etc/fstab の記述に従いマウントされません。

# vgcreate vg_new /dev/sdb1
  Volume group "vg_new" successfully created

フィジカルエクステントのサイズを指定したい場合は -s オプションを使用できます。デフォルトのサイズは 4MB です。

# vgcreate -s 32M vg_new /dev/sdb1
  Volume group "vg_new" successfully created

次に、vgscan コマンドを実行し、作成したボリュームグループがシステムに認識されることを確認します。

# vgscan
  Reading all physical volumes.  This may take a while...
  Found volume group "vg_new" using metadata type lvm2

なお、vgdisplay コマンドを実行すると、作成したボリュームグループの情報を確認することができます。このようにして作成したボリュームグループにロジカルボリュームを作成します。

# vgdisplay vg_new
  --- Volume group ---
  VG Name               vg_new
  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               8.55 GB
  PE Size               4.00 MB
  Total PE              2188
  Alloc PE / Size       0 / 0
  Free  PE / Size       2188 / 8.55 GB
  VG UUID               KDpUt6-PK4M-u9rV-XVoL-DaO2-pqsr-1zv4R7
ロジカルボリュームの作成

作成したボリュームグループ vg_new 上にロジカルボリュームを作成します。以下の例では、500MB の ロジカルボリュームを lv1 という名前で作成しています。

# lvcreate -L 500M -n lv1 vg_new
  Logical volume "lv1" created

これにより、ロジカルボリューム /dev/vg_new/lv1 が作成されます。

ファイルシステムの作成と /etc/fstab の編集

作成したロジカルボリューム上にファイルシステムを作成します。通常のパーティションと同様に作成することができます。

# mkfs.ext3 /dev/vg_new/lv1
mke2fs 1.35 (28-Feb-2004)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
128016 inodes, 512000 blocks
25600 blocks (5.00%) reserved for the super user
First data block=1
63 block groups
8192 blocks per group, 8192 fragments per group
2032 inodes per group
Superblock backups stored on blocks:
        8193, 24577, 40961, 57345, 73729, 204801, 221185, 401409

Writing inode tables: done
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 27 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.

作成後、ファイルシステムをマウントし、df コマンドなどで正常にマウントされていることを確認します。

# mount /dev/vg_new/lv1 /mnt/lvm-test
# df
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda2              4024220   1676372   2143424  44% /
/dev/sda1                62193     16203     42779  28% /boot
/dev/sda3              3020172     32828   2833924   2% /home
/dev/mapper/vg_new-lv1
                        495844      8239    462005   2% /mnt/lvm-test

必要であれば、システム起動時に自動的に作成したロジカルボリュームがマウントされるように /etc/fstab を編集します。

/dev/vg_new/lv1         /mnt/lvm-test           ext3    defaults        1 2

先に述べたように、Turbolinux 10 Server の /etc/rc.sysinit は /etc/fstab に /dev/vg_ の文字列を見つけると LVM をアクティブな状態とするため、システム起動時にロジカルボリュームを自動的にマウントすることができます。もし、手動で LVM をアクティブにする場合は、以下のコマンドを実行する必要があります。

# modprobe dm-mod
# vgscan
# vgchange -a y

また、LVM を無効な状態にするには、マウントしたロジカルボリュームをアンマウントした後に、以下のコマンドを実行します。

# vgchange -a n