WorldCraft wiki VirtualBoxでLVMするときの呪文 LVM(Logical Volume Manager)の概要 †複数のハードディスクやパーティションにまたがった記憶領域を一つの仮想的なディスクとして
扱う。 イメージは (複数または単数ディスクを)細かく刻んで → 一つにまとめて → 必要な大きさでもう一度切り分ける LVM使用例 †本項目では,VertualBox?上で仮想ディスクを4つ追加しLVMを利用してそれらをまとめて1つの論理ボリュームグループを作成し、複数の論理ボリュームを作成する それぞれ /dev/sdb (20GB), /dev/sdc (20GB), /dev/sdd (30GB), /dev/sde(30GB) を追加し1つの論理ボリュームグループ(約100GB)にし,3つの論理ボリューム(10,40,50GB)を作成する事を目指す 1.Vertual Boxを起動し、ハードディスクを追加する †VB起動→仮想マシン選択→設定→ストレージ→SATAコントローラのPortCountを増やす→ハードディスクの追加→vhd選択→dynamicaly選択 OSを起動すると, /dev/sdb /dev/sdc /dev/sdd /dev/sde ….と追加されている(fdisk -l で確認) 2.fdiskコマンドを使用し、LVM用のパーティションを切る †まずは /dev/sdb のパーティションを切る [root@lvm ~]# fdisk /dev/sdb コマンド (m でヘルプ): n コマンドアクション e 拡張 p 基本領域 (1-4) p (←追加はp) 領域番号 (1-4): 1 (←基本的に1 既にパーティションがきられている場合は2とか3) 最初 シリンダ (1-2610, default 1): 1 (←パーティションを切るスタート位置 基本的に1) 終点 シリンダ または +サイズ または +サイズM または +サイズK (1-2610, default 2610): 2610 (←パーティションを切る終端位置 任意) 以上で新規パーティションが作成された コマンド (m でヘルプ): p でも確認ができる コマンド (m でヘルプ): t Selected partition 1 (←さっき作成したパーティションの番号) 16進数コード (L コマンドでコードリスト表示): 8e (Linux LVMにする場合は 8e) 領域のシステムタイプを 1 から 8e (Linux LVM) に変更しました 以上で作成したパーティションを Linux LVMに変更できた コマンド (m でヘルプ): p Disk /dev/sdb: 21.4 GB, 21474836480 bytes 255 heads, 63 sectors/track, 2610 cylinders Units = シリンダ数 of 16065 * 512 = 8225280 bytes デバイス Boot Start End Blocks Id System /dev/sdb1 1 2610 20964793+ 8e Linux LVM 最後に保存して終了する コマンド (m でヘルプ): w 領域テーブルは交換されました! 同様の作業を /dev/sdc /dev/sdd /dev/sde についても行う すべてのディスクのパーティションを作成できたら fdisk -l で状況を確認できる [root@lvm ~]# fdisk -l Disk /dev/sda: 8589 MB, 8589934592 bytes 255 heads, 63 sectors/track, 1044 cylinders Units = シリンダ数 of 16065 * 512 = 8225280 bytes デバイス Boot Start End Blocks Id System /dev/sda1 * 1 13 104391 83 Linux /dev/sda2 14 1044 8281507+ 8e Linux LVM Disk /dev/sdb: 21.4 GB, 21474836480 bytes 255 heads, 63 sectors/track, 2610 cylinders Units = シリンダ数 of 16065 * 512 = 8225280 bytes デバイス Boot Start End Blocks Id System /dev/sdb1 1 2610 20964793+ 8e Linux LVM Disk /dev/sdc: 21.4 GB, 21474836480 bytes 255 heads, 63 sectors/track, 2610 cylinders Units = シリンダ数 of 16065 * 512 = 8225280 bytes デバイス Boot Start End Blocks Id System /dev/sdc1 1 2610 20964793+ 8e Linux LVM Disk /dev/sdd: 32.2 GB, 32212254720 bytes 255 heads, 63 sectors/track, 3916 cylinders Units = シリンダ数 of 16065 * 512 = 8225280 bytes デバイス Boot Start End Blocks Id System /dev/sdd1 1 3916 31455238+ 8e Linux LVM Disk /dev/sde: 32.2 GB, 32212254720 bytes 255 heads, 63 sectors/track, 3916 cylinders Units = シリンダ数 of 16065 * 512 = 8225280 bytes デバイス Boot Start End Blocks Id System /dev/sde1 1 3916 31455238+ 8e Linux LVM 3.PV(物理ボリューム)を作成する †前回作成したパーティションを物理エクステントという最小の単位で細切れにする pvcreateコマンドを使ってPV(物理ボリューム)を作成する [root@lvm ~]# pvcreate /dev/sdb1 Physical volume "/dev/sdb1" successfully created [root@lvm ~]# pvcreate /dev/sdc1 Physical volume "/dev/sdc1" successfully created [root@lvm ~]# pvcreate /dev/sdd1 Physical volume "/dev/sdd1" successfully created [root@lvm ~]# pvcreate /dev/sde1 Physical volume "/dev/sde1" successfully created pvdisplay -C で正しく作成されているか確認 [root@lvm ~]# pvdisplay -C PV VG Fmt Attr PSize PFree /dev/sda2 VolGroup00 lvm2 a- 7.88G 0 /dev/sdb1 lvm2 a- 19.99G 19.99G /dev/sdc1 lvm2 a- 19.99G 19.99G /dev/sdd1 lvm2 a- 30.00G 30.00G /dev/sde1 lvm2 a- 30.00G 30.00G 4.VG(ボリュームグループ)を作成する †前回作成したPV(物理ボリューム)を一つにまとめる vgcreateコマンドを使用してVG(ボリュームグループ)を作成する vgcreate -s 4M VGNAME /dev/sda1 /dev/sdb1 /dev/sdc1 ..... VGNAME:作成されるVG(ボリュームグループの名前) -s 4M:細切れにする大きさ,指定しない場合は4M. VG(ボリュームグループ)作成後はこの大きさを最小単位として大きくしたり、小さくしたりできる またこのサイズによって、作成できるVGの大きさも変わる 4Mの場合最大で256GB迄のサイズのVGしか作成できない /dev/sdb1 /dev/sdc1/ .... : VG(ボリュームグループ)にまとめるPV(物理ボリューム) vgcreateを使用し、先ほど作成したPV(物理ボリューム)を1つにまとめる [root@lvm ~]# vgcreate NewVG /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1 Volume group "NewVG" successfully created vgdisplayで確認 [root@lvm ~]# vgdisplay -C VG #PV #LV #SN Attr VSize VFree NewVG 4 0 0 wz--n- 99.98G 99.98G VolGroup00 1 2 0 wz--n- 7.88G 0 5.LV(論理ボリューム)を作成する †lvcreateコマンドを使用してVG(ボリュームグループ)にまとめたものから任意の大きさのLV(論理ボリューム)を作成する lvcreateの使用方法 lvcreate -L 20G -n LVNAME VGNAME -L 20G : 作成するLV(論理ボリューム)の大きさ LVNAME : 作成するLV(論理ボリューム)の名前 VGNAME : LV(論理ボリューム)を作成するVG(ボリュームグループ)の名前 lvcreateを使用して,先ほど作成したVGからLVを作成する [root@lvm ~]# lvcreate -L 10GB -n LV10GB NewVG Logical volume "LV10GB" created [root@lvm ~]# lvcreate -L 50GB -n LV50GB NewVG Logical volume "LV50GB" created [root@lvm ~]# lvcreate -l 100%FREE -n LV40GB NewVG Logical volume "LV40GB" created 最後の指定はVGに残った容量をすべてLV40GBに配置するという意味 [root@lvm ~]# lvdisplay -C LV VG Attr LSize Origin Snap% Move Log Copy% Convert LV10GB NewVG -wi-a- 10.00G LV40GB NewVG -wi-a- 39.98G LV50GB NewVG -wi-a- 50.00G LogVol00 VolGroup00 -wi-ao 3.97G LogVol01 VolGroup00 -wi-ao 3.91G 6.ファイルシステム作成 †作成したLV(論理ボリューム)にファイルシステムを作成する [root@lvm ~]# mkfs -t ext3 /dev/NewVG/LV10GB mke2fs 1.39 (29-May-2006) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) 1310720 inodes, 2621440 blocks 131072 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=2684354560 80 block groups 32768 blocks per group, 32768 fragments per group 16384 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632 Writing inode tables: done Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 33 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override. 他LV50GB,LV40GBも同様にファイルシステム作成 7.作成したファイルシステムをマウントする †[root@lvm ~]# mkdir /LV10GB /LV50GB /LV40GB [root@lvm ~]# mount /dev/NewVG/LV10GB /LV10GB/ [root@lvm ~]# mount /dev/NewVG/LV50GB /LV50GB/ [root@lvm ~]# mount /dev/NewVG/LV40GB /LV40GB/ 最後にdfコマンドで確認 [root@lvm ~]# df -h Filesystem サイズ 使用 残り 使用% マウント位置 /dev/mapper/VolGroup00-LogVol00 3.9G 2.1G 1.6G 57% / /dev/sda1 99M 13M 82M 14% /boot tmpfs 1006M 0 1006M 0% /dev/shm /dev/mapper/NewVG-LV10GB 9.9G 151M 9.2G 2% /LV10GB /dev/mapper/NewVG-LV50GB 50G 180M 47G 1% /LV50GB /dev/mapper/NewVG-LV40GB 40G 177M 38G 1% /LV40GB 8.起動時に自動でマウントするように設定する /etc/fstabに以下を追記 /dev/NewVG/LV10GB /LV10GB/ ext3 defaults 1 1 /dev/NewVG/LV50GB /LV50GB/ ext3 defaults 1 1 /dev/NewVG/LV40GB /LV40GB/ ext3 defaults 1 1 GUIを使用したLVMの管理について †LV(論理ボリューム)の作成、削除、拡大縮小が行える 0.インストール&起動 †インストール [root@lvm ~]# yum install system-config-lvm 起動 [root@lvm ~]# system-config-lvm & 1.追加したHDDの初期化 †GUIツールを使うと追加したHDDをタイプLinux LVMのパーティションで切る事ができる 2.ボリュームグループの作成 †割当られていないボリュームに先ほど初期化したディスクが追加されている 3論理ボリュームの作成 †ボリュームグループに先ほど作成したボリュームグループが追加されている マウントポイントはなければ自動で作成してくれる親切設計 4.作成した論理ボリュームの編集 †作成した論理ボリュームの大きさを変えたり、マウント先を変えたりすることができる 5.その他 †スナップショットやミラーリングなど便利な機能が多そう [番外編]スナップショット機能 †概要 †LV(論理ボリューム)単位でスナップショットをとる事が可能 結論 †スナップショットを作成しても戻す手段が無い 現行システムが稼働しているLVのスナップショット作成 ↓ dumpコマンドでスナップショットをフルバックアップ ↓ 作成したスナップショット削除 (重要!削除しないと、スナップショットファイルに容量がきまっているため、そのうち溢れる) (↓) 必要ならばresotreコマンドで復元 手順 †スナップショット作成手順 |