目录
一、存储池
1. 查看存储池
[root@libvirt ~]# virsh pool-list
名称 状态 自动开始
-------------------------------------------
default 活动 是[root@libvirt ~]# virsh pool-dumpxml default
<pool type='dir'>
<name>default</name>
<uuid>8e481e78-cfa1-43b0-b89c-cf15c5414f3a</uuid>
<capacity unit='bytes'>37688381440</capacity>
<allocation unit='bytes'>26942775296</allocation>
<available unit='bytes'>10745606144</available>
<source>
</source>
<target>
<path>/var/lib/libvirt/images</path>
<permissions>
<mode>0711</mode>
<owner>0</owner>
<group>0</group>
<label>system_u:object_r:virt_image_t:s0</label>
</permissions>
</target>
</pool>
2.创建物理卷,卷组
[root@libvirt ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 40G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 39G 0 part
├─centos-root 253:0 0 35.1G 0 lvm /
└─centos-swap 253:1 0 3.9G 0 lvm [SWAP]
sdb 8:16 0 20G 0 disk
sr0 11:0 1 9.5G 0 rom /run/media/root/CentOS 7 x86_64
[root@libvirt ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。Device does not contain a recognized partition table
使用磁盘标识符 0xdd5e84af 创建新的 DOS 磁盘标签。命令(输入 m 获取帮助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
分区号 (1-4,默认 1):
起始 扇区 (2048-41943039,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):+2G
分区 1 已设置为 Linux 类型,大小设为 2 GiB命令(输入 m 获取帮助):t
已选择分区 1
Hex 代码(输入 L 列出所有代码):8e
已将分区“Linux”的类型更改为“Linux LVM”命令(输入 m 获取帮助):n
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p): p
分区号 (2-4,默认 2):
起始 扇区 (4196352-41943039,默认为 4196352):
将使用默认值 4196352
Last 扇区, +扇区 or +size{K,M,G} (4196352-41943039,默认为 41943039):+3G
分区 2 已设置为 Linux 类型,大小设为 3 GiB命令(输入 m 获取帮助):t
分区号 (1,2,默认 2):2
Hex 代码(输入 L 列出所有代码):8e
已将分区“Linux”的类型更改为“Linux LVM”命令(输入 m 获取帮助):p
磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xdd5e84af设备 Boot Start End Blocks Id System
/dev/sdb1 2048 4196351 2097152 8e Linux LVM
/dev/sdb2 4196352 10487807 3145728 8e Linux LVM命令(输入 m 获取帮助):w
The partition table has been altered!Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@libvirt ~]# partprobe /dev/sdb
[root@libvirt ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 40G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 39G 0 part
├─centos-root 253:0 0 35.1G 0 lvm /
└─centos-swap 253:1 0 3.9G 0 lvm [SWAP]
sdb 8:16 0 20G 0 disk
├─sdb1 8:17 0 2G 0 part
└─sdb2 8:18 0 3G 0 part
sr0 11:0 1 9.5G 0 rom /run/media/root/CentOS 7 x86_64
[root@libvirt ~]# pvcreate /dev/sdb1
Physical volume "/dev/sdb1" successfully created.
[root@libvirt ~]# pvcreate /dev/sdb2
Physical volume "/dev/sdb2" successfully created.
[root@libvirt ~]# vgcreate lvm_pool /dev/sdb1 /dev/sdb2
Volume group "lvm_pool" successfully created
[root@libvirt ~]# vgs
VG #PV #LV #SN Attr VSize VFree
centos 1 2 0 wz--n- <39.00g 4.00m
lvm_pool 2 0 0 wz--n- 4.99g 4.99g
3.编写存储池xml
[root@libvirt ~]# vim lvm_pool.xml
<pool type='logical'> <name>lvm_pool</name> <source> <device path="/dev/sdb1"/> <device path="/dev/sdb2"/> </source> <target> <path>lvm_pool</path> </target> </pool>
4.创建存储池
[root@libvirt ~]# virsh pool-define lvm_pool.xml
在 lvm_pool 中定义池 lvm_pool.xml[root@libvirt ~]# virsh pool-list --all
名称 状态 自动开始
-------------------------------------------
default 活动 是
lvm_pool 不活跃 否
5.启动
[root@libvirt ~]# virsh pool-start lvm_pool
池 lvm_pool 已启动[root@libvirt ~]# virsh pool-list --all
名称 状态 自动开始
-------------------------------------------
default 活动 是
lvm_pool 活动 否
6.查看
[root@libvirt ~]# virsh pool-info lvm_pool
名称: lvm_pool
UUID: ecc344d0-60d1-4e24-b18f-e0a022640922
状态: running
持久: 是
自动启动: 否
容量: 4.99 GiB
分配: 0.00 B
可用: 4.99 GiB
[root@libvirt ~]# virsh pool-dumpxml lvm_pool
<pool type='logical'>
<name>lvm_pool</name>
<uuid>ecc344d0-60d1-4e24-b18f-e0a022640922</uuid>
<capacity unit='bytes'>5360320512</capacity>
<allocation unit='bytes'>0</allocation>
<available unit='bytes'>5360320512</available>
<source>
<device path='/dev/sdb1'/>
<device path='/dev/sdb2'/>
<name>lvm_pool</name>
<format type='lvm2'/>
</source>
<target>
<path>/dev/lvm_pool</path>
</target>
</pool>
7.扩容
[root@libvirt ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
命令(输入 m 获取帮助):n
Partition type:
p primary (2 primary, 0 extended, 2 free)
e extended
Select (default p): p
分区号 (3,4,默认 3):
起始 扇区 (10487808-41943039,默认为 10487808):
将使用默认值 10487808
Last 扇区, +扇区 or +size{K,M,G} (10487808-41943039,默认为 41943039):+5G
分区 3 已设置为 Linux 类型,大小设为 5 GiB命令(输入 m 获取帮助):t
分区号 (1-3,默认 3):3
Hex 代码(输入 L 列出所有代码):8e
已将分区“Linux”的类型更改为“Linux LVM”命令(输入 m 获取帮助):p
磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xdd5e84af设备 Boot Start End Blocks Id System
/dev/sdb1 2048 4196351 2097152 8e Linux LVM
/dev/sdb2 4196352 10487807 3145728 8e Linux LVM
/dev/sdb3 10487808 20973567 5242880 8e Linux LVM命令(输入 m 获取帮助):w
The partition table has been altered!Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@libvirt ~]# partprobe /dev/sdb
[root@libvirt ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 40G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 39G 0 part
├─centos-root 253:0 0 35.1G 0 lvm /
└─centos-swap 253:1 0 3.9G 0 lvm [SWAP]
sdb 8:16 0 20G 0 disk
├─sdb1 8:17 0 2G 0 part
├─sdb2 8:18 0 3G 0 part
└─sdb3 8:19 0 5G 0 part
sr0 11:0 1 9.5G 0 rom /run/media/root/CentOS 7 x86_64[root@libvirt ~]# pvcreate /dev/sdb3
Physical volume "/dev/sdb3" successfully created.
[root@libvirt ~]# vgextend lvm_pool /dev/sdb3
Volume group "lvm_pool" successfully extended
[root@libvirt ~]# vgs
VG #PV #LV #SN Attr VSize VFree
centos 1 2 0 wz--n- <39.00g 4.00m
lvm_pool 3 0 0 wz--n- <9.99g <9.99g
[root@libvirt ~]# virsh pool-refresh lvm_pool
池 lvm_pool 被刷新[root@libvirt ~]# virsh pool-info lvm_pool
名称: lvm_pool
UUID: ecc344d0-60d1-4e24-b18f-e0a022640922
状态: running
持久: 是
自动启动: 否
容量: 9.99 GiB
分配: 0.00 B
可用: 9.99 GiB
8.删除
[root@libvirt ~]# virsh pool-destroy lvm_pool
销毁池 lvm_pool[root@libvirt ~]# virsh pool-list --all
名称 状态 自动开始
-------------------------------------------
default 活动 是
lvm_pool 不活跃 否
[root@libvirt ~]# virsh pool-undefine lvm_pool
池 lvm_pool 已经被取消定义[root@libvirt ~]# virsh pool-list --all
名称 状态 自动开始
-------------------------------------------
default 活动 是
二、存储卷
1. 创建存储池
[root@libvirt ~]# virsh pool-define lvm_pool.xml
在 lvm_pool 中定义池 lvm_pool.xml[root@libvirt ~]# virsh pool-start lvm_pool
池 lvm_pool 已启动[root@libvirt ~]# virsh pool-list
名称 状态 自动开始
-------------------------------------------
default 活动 是
lvm_pool 活动 否
2.创建存储卷
[root@libvirt ~]# virsh vol-create-as --pool lvm_pool --name vol1 --capacity 100M
创建卷 vol1[root@libvirt ~]# virsh vol-dumpxml vol1 --pool lvm_pool
<volume type='block'>
<name>vol1</name>
<key>I0NgcE-FGwe-HkAz-ko8r-aZ1T-unmr-XCeVo1</key>
<source>
<device path='/dev/sdb1'>
<extent start='0' end='104857600'/>
</device>
</source>
<capacity unit='bytes'>104857600</capacity>
<allocation unit='bytes'>104857600</allocation>
<physical unit='bytes'>104857600</physical>
<target>
<path>/dev/lvm_pool/vol1</path>
<permissions>
<mode>0600</mode>
<owner>0</owner>
<group>6</group>
</permissions>
<timestamps>
<atime>1665711612.633313514</atime>
<mtime>1665711612.633313514</mtime>
<ctime>1665711612.635313499</ctime>
</timestamps>
</target>
</volume>
3.查看存储路径
[root@libvirt ~]# virsh vol-path --vol vol1 --pool lvm_pool
/dev/lvm_pool/vol1[root@libvirt ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root centos -wi-ao---- <35.12g
swap centos -wi-ao---- <3.88g
vol1 lvm_pool -wi-a----- 100.00m
4.挂载至客户机
[root@libvirt ~]# virsh vol-list --pool lvm_pool
名称 路径
------------------------------------------------------------------------------
vol1 /dev/lvm_pool/vol1[root@libvirt ~]# virsh list
Id 名称 状态
----------------------------------------------------[root@libvirt ~]# virsh start centos7-1
域 centos7-1 已开始[root@libvirt ~]# virsh list
Id 名称 状态
----------------------------------------------------
1 centos7-1 running[root@libvirt ~]# virsh attach-disk --domain 1 --source /dev/lvm_pool/vol1 --target sdb
成功附加磁盘
5.查看是否挂载
[root@libvirt ~]# virsh domblklist 1
目标 源
------------------------------------------------
hda /opt/centos7.qcow2
hdb /root/CentOS-7-x86_64-Everything-2009.iso
sdb /dev/lvm_pool/vol1
6.分离磁盘
[root@libvirt ~]# virsh detach-disk --domain 1 --target sdb
成功分离磁盘[root@libvirt ~]# virsh domblklist 1
目标 源
------------------------------------------------
hda /opt/centos7.qcow2
hdb /root/CentOS-7-x86_64-Everything-2009.iso
7.删除存储卷
[root@libvirt ~]# virsh vol-delete vol1 --pool lvm_pool
卷 vol1 被删除