LVM基本操作

提供: Wikiducca
2019年1月1日 (火) 13:34時点における七星 (ノート | 投稿記録)による版

移動: 案内検索

Wikiduccaは終了しました。今後はゴールドペディアをご利用ください。<nowiki>Wikiduccaは終了しました。今後はゴールドペディアをご利用ください。<nowiki>Wikiduccaは終了しました。今後はゴールドペディアをご利用ください。<nowiki>Wikiduccaは終了しました。今後はゴールドペディアをご利用ください。<nowiki>Wikiduccaは終了しました。今後はゴールドペディアをご利用ください。<nowiki>Wikiduccaは終了しました。今後はゴールドペディアをご利用ください。= LVM とは = LVM(logical volume manager)とは、複数のハード・ディスクやパーティションにまたがった記憶領域を一つの論理的なディスクとして扱うことのできるディスク管理機能。Linux をはじめとした UNIX 系 OS 上で利用できる。 = 登場人物 = * PV (物理ボリューム:Phisical Volume) LVMで管理する物理的な記憶媒体、たとえば HDD そのものや、 HDD 内のパーティションを指す。 * VG (ボリュームグループ:Volume Group) 複数の PV をまとめたもので、1つの論理的な記憶媒体として使用することができる。 * LV (論理ボリューム:Logical Volume) VG 上に設定された論理的なパーティションのこと。 == まとめ == 大雑把に言うと、 * VG : 論理的な HDD * LV: そのパーティション となる。 = 現状の確認 = == 物理ボリューム (pvscan) == <pre> [root@server ~]# pvscan PV /dev/sda3 VG VolGroup00 lvm2 [51.34 GB / 9.34 GB free] Total: 1 [51.34 GB] / in use: 1 [51.34 GB] / in no VG: 0 [0 ] </pre> `/dev/sda3` という物理ボリューム(PV)に `VolGroup00`というボリュームグループ(VG) がつくられており、51.34 GB が割り当て済み、9.34 GB が未割り当てになっていることが分かる。 == ボリュームグループ (vgscan) == <pre> [root@server ~]# vgscan Reading all physical volumes. This may take a while… Found volume group "VolGroup00" using metadata type lvm2 </pre> VolGroup00 というボリュームグループ(VG) が使用されていることが分かる。 == 論理ボリューム (lvscan) == <pre> [root@server ~]# lvscan ACTIVE '/dev/VolGroup00/LogVol01' [20.00 GB] inherit ACTIVE '/dev/VolGroup00/LogVol02' [20.00 GB] inherit ACTIVE '/dev/VolGroup00/LogVol00' [2.00 GB] inherit </pre> 論理ボリューム内に上記3つのパーティションが作られていることが分かる。 == df == <pre> [root@server ~]# df Filesystem 1K-ブロック 使用 使用可 使用% マウント位置 /dev/mapper/VolGroup00-LogVol01 20314748 7787016 11479156 41% / /dev/mapper/VolGroup00-LogVol02 20314748 176200 19089972 1% /backup /dev/sda1 101086 12108 83759 13% /boot tmpfs 512960 0 512960 0% /dev/shm </pre> この場合、lvscan の結果と比較すると、 <pre> '/dev/VolGroup00/LogVol01' [20.00 GB] = / '/dev/VolGroup00/LogVol02' [20.00 GB] = /backup '/dev/VolGroup00/LogVol00' [2.00 GB] = swap </pre> ということが分かる。 また、`20GB + 20GB + 2GB = 計 42GB` で、 pvscan の結果から、 `lvm2 [51.34 GB / 9.34 GB free]` つまり、`51GB - 42GB = 9GB` が未割当で、何にも使われていない。 ということがわかる。 = 新規論理ボリュームの作成 = 上記の割り当てられていない `9GB` から `2GB` 分を使って、新しい論理ボリュームを作成する。 == 条件 == * 論理ボリューム名: `LogVol03` * サイズ: `2048 MB (2 GB)` * ボリュームグループ: `VolGroup00` * マウント先: `/lvm_test` == 作成 (lvcreate) == <pre> [root@server ~]# lvcreate -L 2048M -n LogVol03 VolGroup00 Logical volume "LogVol03" created </pre> == 確認 (ls) == <pre> [root@server ~]# ls -lat /dev/VolGroup00/ 合計 0 drwx------ 2 root root 120 6月 11 16:36 . lrwxrwxrwx 1 root root 31 6月 11 16:36 LogVol03 -> /dev/mapper/VolGroup00-LogVol03 drwxr-xr-x 12 root root 4260 5月 15 16:57 .. lrwxrwxrwx 1 root root 31 2月 18 18:07 LogVol01 -> /dev/mapper/VolGroup00-LogVol01 lrwxrwxrwx 1 root root 31 1月 23 02:44 LogVol00 -> /dev/mapper/VolGroup00-LogVol00 lrwxrwxrwx 1 root root 31 1月 23 02:44 LogVol02 -> /dev/mapper/VolGroup00-LogVol02 </pre> == 確認 (lvscan) == <pre> [root@server ~]# lvscan ACTIVE '/dev/VolGroup00/LogVol01' [20.00 GB] inherit ACTIVE '/dev/VolGroup00/LogVol02' [20.00 GB] inherit ACTIVE '/dev/VolGroup00/LogVol00' [2.00 GB] inherit ACTIVE '/dev/VolGroup00/LogVol03' [2.00 GB] inherit </pre> `/dev/VolGroup00/LogVol03 (2.00GB)` が作成されている。 == 確認 (pvscan) == <pre> [root@server ~]# pvscan PV /dev/sda2 VG VolGroup00 lvm2 [51.34 GB / 7.34 GB free] Total: 1 [51.34 GB] / in use: 1 [51.34 GB] / in no VG: 0 [0 ] </pre> 未割り当ての部分から `2GB` が減ったことを確認。 == ext3 でフォーマット(mkfs.ext3) == <pre> [root@server ~]# mkfs.ext3 /dev/VolGroup00/LogVol03 mke2fs 1.39 (29-May-2006) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) 262144 inodes, 524288 blocks 26214 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=536870912 16 block groups 32768 blocks per group, 32768 fragments per group 16384 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912 Writing inode tables: done Creating journal (16384 blocks): done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 25 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override. </pre> == マウント == <pre> [root@server ~]# mkdir /lvm_test [root@server ~]# mount /dev/VolGroup00/LogVol03 /lvm_test </pre> == 確認 (df) == <pre> [root@server ~]# df -h Filesystem サイズ 使用 残り 使用% マウント位置 /dev/mapper/VolGroup00-LogVol01 20G 15G 4.3G 77% / /dev/mapper/VolGroup00-LogVol02 20G 8.5G 10G 47% /backup /dev/sda1 99M 12M 82M 13% /boot tmpfs 501M 0 501M 0% /dev/shm /dev/mapper/VolGroup00-LogVol03 2.0G 68M 1.9G 4% /lvm_test </pre> 以上、作成&マウント完了。 = 論理ボリュームのリサイズ = == 拡張 == 1GB 増やしてみる。 === 実行 (lvextend) === <pre> [root@server ~]# lvextend -L +1G /dev/VolGroup00/LogVol03 Extending logical volume LogVol03 to 3.00 GB Logical volume LogVol03 successfully resized </pre> === ファイルシステムに反映 (resize2fs) === <pre> [root@server ~]# resize2fs /dev/VolGroup00/LogVol03 resize2fs 1.39 (29-May-2006) Filesystem at /dev/VolGroup00/LogVol03 is mounted on /lvm_test; on-line resizing required Performing an on-line resize of /dev/VolGroup00/LogVol03 to 786432 (4k) blocks. The filesystem on /dev/VolGroup00/LogVol03 is now 786432 blocks long. </pre> 以上で、`/lvm_test` にて `1GB` 多く使えるようになった。 == 縮小 == 512MB 減らしてみる。 !!!!! 順番を間違えると面倒くさいことになるので要注意 !!!!! 先に、アンマウントして fsck をする必要がある。 <pre> [root@server ~]# umount /lvm_test/ [root@server ~]# e2fsck -f /dev/VolGroup00/LogVol03 e2fsck 1.39 (29-May-2006) Pass 1: Checking inodes, blocks, and sizes Pass 2: Checking directory structure Pass 3: Checking directory connectivity Pass 4: Checking reference counts Pass 5: Checking group summary information /dev/VolGroup00/LogVol03: 15/393216 files (6.7% non-contiguous), 29522/786432 blocks </pre> === ファイルシステム側の縮小 (resize2fs) === ここでの `1536M` は `2048M - 512M` でリサイズ後のディスクサイズ。 <pre> [root@server ~]# resize2fs /dev/mapper/VolGroup00-LogVol03 1536M resize2fs 1.39 (29-May-2006) Resizing the filesystem on /dev/mapper/VolGroup00-LogVol03 to 393216 (4k) blocks. The filesystem on /dev/mapper/VolGroup00-LogVol03 is now 393216 blocks long. </pre> === lvm 側の縮小 (lvreduce) === <pre> [root@server ~]# lvm lvreduce -L -512M /dev/VolGroup00/LogVol03 WARNING: Reducing active logical volume to 1.50 GB THIS MAY DESTROY YOUR DATA (filesystem etc.) Do you really want to reduce LogVol03? [y/n]: y Reducing logical volume LogVol03 to 1.50 GB Logical volume LogVol03 successfully resized </pre> ここでは `-512M` としているが、`-` をつけないと、縮小後のトータルサイズになってしまうので注意。 === 再度マウント === <pre> [root@server ~]# mount /dev/VolGroup00/LogVol03 /lvm_test/ </pre> = 論理ボリュームの削除 = <pre> [root@server ~]# umount /lvm_test/ [root@server ~]# lvremove -f /dev/VolGroup00/LogVol03 Logical volume "LogVol03" successfully removed </pre> ちゃんとアンマウントしてからじゃないと削除できない。 <pre> [root@server ~]# lvremove -f /dev/VolGroup00/LogVol03 Can't remove open logical volume "LogVol03" </pre> 以上。 [[Category:Linux]][[Category:LVM]]