ゲスト VM に仮想 DISK を追加
ゲスト VM の「Alma Linux」に新規の仮想ディスクを追加する。追加する仮想ディスクは以下の設定とする。
仮想ディスクイメージ形式 | QCOW2 |
サイズ | 5GB |
ディスクデバイス名 | /dev/vdb |
パーティションテーブル | MBR (msdos) |
パーティションタイプ | primary (全領域) |
LVM | 有効 |
Physical Volume 対象 | /dev/vdb1 |
Volume Group 名 | vg1 |
Logical Volume 名 | root |
File System | xfs |
ホスト OS 側での仮想ディスク作成
ホスト OS となる Ubuntu Desktop 側で仮想ディスクのイメージファイルを作成する。
イメージファイル形式はスナップショット等が利用可能な「qcow2」で作成する。
$ cd /var/lib/libvirt/images
$ sudo qemu-img create -f qcow2 VM-01-disk1.qcow2 5G
Formatting 'VM-01-disk1.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=5368709120 lazy_refcounts=off refcount_bits=16
$ sudo chmod 600 VM-01-disk1.qcow2
$ sudo chown libvirt-qemu:kvm VM-01-disk1.qcow2
作成された仮想ディスクのイメージファイル情報を確認する。
$ sudo qemu-img info VM-01-disk1.qcow2
image: VM-01-disk1.qcow2
file format: qcow2
virtual size: 5 GiB (5368709120 bytes)
disk size: 17 KiB
cluster_size: 65536
Format specific information:
compat: 1.1
compression type: zlib
lazy refcounts: false
refcount bits: 16
corrupt: false
extended l2: false
ゲスト VM に仮想ディスクの追加
ゲスト VM に作成した仮想ディスクを追加する。
$ virsh
virsh # attach-disk --domain VM-01 --source /var/lib/libvirt/images/VM-01-disk1.qcow2 --subdriver qcow2 --target vdb --persistent
Disk attached successfully
virsh # domblklist --domain VM-01
Target Source
--------------------------------------------------------
vda /var/lib/libvirt/images/VM-01.qcow2
vdb /var/lib/libvirt/images/VM-01-disk1.qcow2
virsh # domblkinfo --domain VM-01 --all
Target Capacity Allocation Physical
--------------------------------------------------
vda 21474836480 2534310912 21478375424
vdb 5368709120 17408 196688
ゲスト VM から仮想ディスクを取り外す場合は以下を実行する。
virsh # detach-disk --domain VM-01 --target vdb --persistent
Disk detached successfully
ゲスト VM で仮想ディスクのボリューム作成
ゲスト VM を起動し、 SSH 等でゲスト VM に接続する。ゲスト VM 上で追加された仮想ディスクを利用可能な状態にする。
[root@vm-01 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
vda 252:0 0 20G 0 disk
├─vda1 252:1 0 1G 0 part /boot
└─vda2 252:2 0 19G 0 part
├─almalinux-root 253:0 0 18G 0 lvm /
└─almalinux-swap 253:1 0 1G 0 lvm [SWAP]
vdb 252:16 0 5G 0 disk
[root@vm-01 ~]# fdisk -l /dev/vdb
Disk /dev/vdb: 5 GiB, 5368709120 bytes, 10485760 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
新規 Primary パーティションを作成する。この時、 LVM を有効にする。
[root@vm-01 ~]# parted /dev/vdb
GNU Parted 3.5
Using /dev/vdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) mklabel msdos
(parted) mkpart primary 0% 100%
(parted) set 1 lvm on
(parted) print
Model: Virtio Block Device (virtblk)
Disk /dev/vdb: 5369MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
1 1049kB 5369MB 5368MB primary lvm
(parted) quit
作成したパーティションを確認する。
[root@vm-01 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
vda 252:0 0 20G 0 disk
├─vda1 252:1 0 1G 0 part /boot
└─vda2 252:2 0 19G 0 part
├─almalinux-root 253:0 0 18G 0 lvm /
└─almalinux-swap 253:1 0 1G 0 lvm [SWAP]
vdb 252:16 0 5G 0 disk
└─vdb1 252:17 0 5G 0 part
[root@vm-01 ~]# fdisk -l /dev/vdb
Disk /dev/vdb: 5 GiB, 5368709120 bytes, 10485760 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x075adb9c
Device Boot Start End Sectors Size Id Type
/dev/vdb1 2048 10485759 10483712 5G 8e Linux LVM
次に LVM を作成する。
[root@vm-01 ~]# pvcreate /dev/vdb1
Physical volume "/dev/vdb1" successfully created.
[root@vm-01 ~]# vgcreate vg1 /dev/vdb1
Volume group "vg1" successfully created
[root@vm-01 ~]# lvcreate --name root -l 100%FREE vg1
Logical volume "root" created.
作成した LVM の構成を確認する。
[root@vm-01 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
vda 252:0 0 20G 0 disk
├─vda1 252:1 0 1G 0 part /boot
└─vda2 252:2 0 19G 0 part
├─almalinux-root 253:0 0 18G 0 lvm /
└─almalinux-swap 253:1 0 1G 0 lvm [SWAP]
vdb 252:16 0 5G 0 disk
└─vdb1 252:17 0 5G 0 part
└─vg1-root 253:2 0 5G 0 lvm
[root@vm-01 ~]# pvdisplay /dev/vdb1
--- Physical volume ---
PV Name /dev/vdb1
VG Name vg1
PV Size <5.00 GiB / not usable 3.00 MiB
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE 1279
Free PE 0
Allocated PE 1279
PV UUID 4JyVQQ-bpIR-TtAk-FtK9-xauL-LZnq-DabBiY
[root@vm-01 ~]# vgdisplay vg1
--- Volume group ---
VG Name vg1
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 2
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 0
Max PV 0
Cur PV 1
Act PV 1
VG Size <5.00 GiB
PE Size 4.00 MiB
Total PE 1279
Alloc PE / Size 1279 / <5.00 GiB
Free PE / Size 0 / 0
VG UUID inPeu0-KKdN-GeNb-p1vx-InWt-ap83-xTAJE5
[root@vm-01 ~]# lvdisplay --devices /dev/vdb1
--- Logical volume ---
LV Path /dev/vg1/root
LV Name root
VG Name vg1
LV UUID GuCJSl-43Or-cNmP-unj0-qScW-o8zF-cHTgUZ
LV Write Access read/write
LV Creation host, time vm-01.net.home, 2024-02-25 20:40:07 +0900
LV Status available
# open 2
LV Size <5.00 GiB
Current LE 1279
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:2
作成した LVM のボリューム「/dev/mapper/vg1-root」を「xfs」でフォーマットする。
[root@vm-01 ~]# ll /dev/mapper/
total 0
lrwxrwxrwx. 1 root root 7 Mar 3 18:02 almalinux-root -> ../dm-0
lrwxrwxrwx. 1 root root 7 Mar 3 18:02 almalinux-swap -> ../dm-1
crw-------. 1 root root 10, 236 Mar 3 18:02 control
lrwxrwxrwx. 1 root root 7 Mar 3 18:02 vg1-root -> ../dm-2
[root@vm-01 ~]# dmsetup table
almalinux-root: 0 37740544 linear 252:2 2048
almalinux-swap: 0 2097152 linear 252:2 37742592
vg1-root: 0 10477568 linear 252:17 2048
[root@vm-01 ~]# mkfs.xfs /dev/mapper/vg1-root
meta-data=/dev/mapper/vg1-root isize=512 agcount=4, agsize=327424 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1 bigtime=1 inobtcount=1 nrext64=0
data = bsize=4096 blocks=1309696, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=16384, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
Discarding blocks...Done.
起動時にマウントするように「fstab」に追記する。
[root@vm-01 ~]# mkdir /mnt/vg1
[root@vm-01 ~]# cat /etc/fstab
/dev/mapper/almalinux-root / xfs defaults 0 0
UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /boot xfs defaults 0 0
/dev/mapper/almalinux-swap none swap defaults 0 0
/dev/mapper/vg1-root /mnt/vg1 xfs defaults 0 0
[root@vm-01 ~]# systemctl daemon-reload
[root@vm-01 ~]# mount -a
[root@vm-01 ~]# df -hT
Filesystem Type Size Used Avail Use% Mounted on
devtmpfs devtmpfs 4.0M 0 4.0M 0% /dev
tmpfs tmpfs 379M 48M 332M 13% /dev/shm
tmpfs tmpfs 152M 3.2M 149M 3% /run
/dev/mapper/almalinux-root xfs 18G 3.2G 15G 18% /
/dev/vda1 xfs 960M 275M 686M 29% /boot
tmpfs tmpfs 76M 0 76M 0% /run/user/0
/dev/mapper/vg1-root xfs 5.0G 68M 4.9G 2% /mnt/vg1
参考URL
How to add disk image to KVM virtual machine with virsh command
論理ボリュームマネージャー(Linux LVM)について調査してみました
Debian11 で Libvirt(KVM)