2章 LVM操作 基本編
2.1 前提条件
記事中のコマンドは、図2のような構成を前提としています。
- 第1パーティション
- 第2パーティション
- 第3パーティション
100MBくらいのLinuxパーティションです。これを「/boot」とします。
2GBくらいのLinux LVMパーティションです。これをシステム用VG「vg01」とします。この中に「root_lv(/)」と「swap_lv(swap)」があり、その中にFedora Coreがインストールされているとします。
4GBくらいのLinux LVMパーティションです。これをテスト用VG「testvg」とします。テスト用VG「testvg」は記事中で作成するため、事前に作成されなくて結構です。
大切なのは操作の流れを理解することですので、まったく同じ環境でなくても問題はありません。
図2 本稿の前提環境
2.2 LVMパーティションを作成する
まず、Linux LVMパーティションを作成します。
Linux上でLVMを利用するには、空きディスクか、Linux LVMパーティションが少なくても1つ必要です。パーティション番号は、前述のとおり16進数で8eです。Linux LVMパーティションの作成には、fdiskや、cfdiskなどパーティション操作が行なえるツールを使います。
2.3 fdiskコマンドでLVMパーティションを作成する
今回は、fdiskを使ってLinux LVMパーティションする流れをご紹介します。図3をご覧下さい。
まず、「n」コマンドで新規パーティションを作成し、「t」コマンドでパーティションタイプを変更します。
パーティションを作成した後、確認するために「p」コマンドを実行します。問題がなければ、「w」コマンドでパーティションテーブルを保存します。
「カーネルはまだ古いテーブルを使っています。新しいテーブルは次回リブート時に使えるようになるでしょう。」というメッセージが表示された場合、再起動するかpartprobeコマンドを実行します。
partprobeコマンドは、Fedora CoreをはじめとするRed Hat系ディストリビューションに含まれるコマンドです。ディスクからパーティションテーブルを読み込み、カーネル内のパーティションテーブルに反映することができます。
図3 LVMパーティションを作成
# fdisk /dev/hda コマンド (m でヘルプ): n コマンドアクション e 拡張 p 基本領域 (1-4) p 領域番号 (1-4): 3 領域番号 (1-4): 3 最初 シリンダ (4417-19590, default 4417): Using default value 4417 終点 シリンダ または +サイズ または +サイズM または +サイズK (4417-19590, default 19590): Using default value 19590 コマンド (m でヘルプ): t Partition number (1-4): 3 16進数コード (L コマンドでコードリスト表示): 8e 領域のシステムタイプを 3 から 8e (Linux LVM) に変更しました コマンド (m でヘルプ): p Disk /dev/hda: 10.1 GB, 10110320640 bytes 16 heads, 63 sectors/track, 19590 cylinders Units = cylinders of 1008 * 512 = 516096 bytes デバイス Boot Start End Blocks Id System /dev/hda1 * 1 249 125464+ 83 Linux /dev/hda2 250 4416 2100168 8e Linux LVM /dev/hda3 4417 19590 7647696 8e Linux LVM Command (m for help): w 領域テーブルは交換されました! ioctl() を呼び出して領域テーブルを再読込みします。 ディスクを同期させます。 警告: 領域テーブルの再読込みがエラー 16 で失敗しました: デバイスもしくはリソースがビジー状態です。 カーネルはまだ古いテーブルを使っています。 新しいテーブルは次回リブート時に使えるようになるでしょう。 ディスクを同期させます。
2.4 PVを作成する
Linux LVMパーティションを作成した後に、PVを作成します。
PVを作成するには、pvcreateというコマンドを使います。(図4) このコマンドを実行することにより、LVMパーティションが区画整備されます。PVがうまく作成されたか確認するには、pvdisplayコマンドを実行します。
図4 PVを作成
# pvcreate /dev/hda3 Physical volume \"/dev/hda3\" successfully created] # pvdisplay -C PV VG Fmt Attr PSize PFree /dev/hda2 vg01 lvm2 a- 2.00G 0 /dev/hda3 lvm2 -- 7.29G 7.29G # pvdisplay /dev/hda3 --- Physical volume --- PV Name /dev/hda3 VG Name PV Size 7.29 GB Allocatable NO PE Size (KByte) 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID 1RA8bb-JHjJ-KfAO-JobK-QKAg-aYp4-eAdGJ0
2.5 VGを作成する
PVの作成を行った後、PVをまとめるためにVGを作成します。
VGを作成するには、vgcreateというコマンドを使います。(図5) このコマンドを実行することによりVGが定義され、同時にPVの中にPEが作成されます。
今回はPEサイズ32MBで作成します。VGが作成されたことを確認するには、vgdisplayコマンドを実行します。
図5 VGを作成
# vgcreate -s 32m testvg /dev/hda3 Volume group \"testvg\" successfully created # vgdisplay -C VG #PV #LV #SN Attr VSize VFree testvg 1 0 0 wz--n 7.28G 7.28G vg01 1 2 0 wz--n 2.00G 0 # vgdisplay testvg --- Volume group --- VG Name testvg 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 7.28 GB PE Size 32.00 MB Total PE 233 Alloc PE / Size 0 / 0 Free PE / Size 233 / 7.28 GB VG UUID Sqfqv5-i3s3-CnvX-MZW3-bl9M-bHQA-3WnD1B
2.6 LVを作成する
VGの作成が終われば、もうあと少しです。次に実際にLVを作成します。
LVを作成するには、lvcreateというコマンドを使います。(図6) 今回はテスト用VG「testvg」上に1GBの「opt_lv」というLVを作成します。LVがうまく作成できたか確認するには、lvdisplayコマンドを実行します。
図6 LVを作成
# lvcreate -L 1G -n opt_lv testvg Logical volume \"opt_lv\" created # lvdisplay -C LV VG Attr LSize Origin Snap% Move Copy% opt_lv testvg -wi-a- 1.00G root_lv vg01 -wi-ao 1.50G swap_lv vg01 -wi-ao 512.00M # lvdisplay /dev/testvg/opt_lv --- Logical volume --- LV Name /dev/testvg/opt_lv VG Name testvg LV UUID jsyfKs-Ri3q-cPdt-pTcI-BAX3-chrG-hGP5zl LV Write Access read/write LV Status available # open 0 LV Size 1.00 GB Current LE 32 Segments 1 Allocation inherit Read ahead sectors 0 Block device 253:2
2.7 ファイルシステムを作成する
LVを作成した後、その中にファイルシステムを作ります。
ファイルシステムを作成するには、mkfsコマンドを使います。(図7)
最近ではファイルシステムの種類ごとにmkfs.ext2、mkfs.ext3、mkfs.xfsなどといったコマンドも用意されています。今回は、XFSでフォーマットします。
図7 ファイルシステムを作成
# mkfs.xfs -f /dev/testvg/opt_lv meta-data=/dev/testvg/opt_lv isize=256 agcount=8, agsize=32768 blks = sectsz=512 data = bsize=4096 blocks=262144, imaxpct=25 = sunit=0 swidth=0 blks, unwritten=1 naming =version 2 bsize=4096 log =internal log bsize=4096 blocks=2560, version=1 = sectsz=512 sunit=0 blks realtime =none extsz=65536 blocks=0, rtextents=0
2.8 ファイルシステムをマウントする
ファイルシステムを作りましたので、ようやくマウントすることができます。
従来のパーティション管理と同じく、mountコマンドを実行します。きちんとマウントされているか、dfコマンドで確認します。(図8)
図8 ファイルシステムをマウント
# mount /dev/testvg/opt_lv /opt # df -h /opt/ Filesystem サイズ 使用 残り 使用% マウント位置 /dev/mapper/testvg-opt_lv 1014M 144K 1014M 1% /opt
2.9 2章のまとめ
いかがだったでしょうか?この「基本編」だけでは、まだLVMの便利さが体感できないかもしれません。
各種のcreate系、display系コマンドを覚えて頂ければ、この章の目的は達成です。
何度か環境を壊すくらい実行すれば、コマンドも覚えてしまうはず。次の章ではLVMを活用する方法をご紹介します。Linux生活が便利になるかもしれません。
ナビゲーション
- 1章 LVM入門
- 2章 LVM操作 基本編
- 3章 LVM操作 応用編