返回

不信你不学!虚拟化技术之kvm宿主机、存储池管理命令用法及排错

发布时间:2022-11-21 12:07:21 290

宿主机命令

前提:yum -y install libguestfs libguestfs-tools

1.virt-inspector 查看虚拟磁盘文件所有信息
注意
1)尽量输入绝对路径,否则提示找不到;后面可以加管道符more,以分页显示
2)建议虚拟机关机操作,只有少数操作支持开机操作

virt-inspector --format=qcow2 -a /kvm_store/centos7.1.qcow2 | more

不信你不学!虚拟化技术之kvm宿主机、存储池管理命令用法及排错_centos

2.virt-cat 查看虚拟机内部文件信息

virt-cat -a centos7.qcow2 /etc/hostname

不信你不学!虚拟化技术之kvm宿主机、存储池管理命令用法及排错_centos_02

3.virt-edit 修改虚拟机文件
virt-edit -a /kvm_store/vmtest03.qcow2 /etc/hostname
修改为:resize

4.virt-df 统计查看虚拟机磁盘使用情况

virt-df -h -a centos7.qcow2

不信你不学!虚拟化技术之kvm宿主机、存储池管理命令用法及排错_linux_03

5.virt-copy-out 复制虚拟机文件到外部

virt-copy-out -d clone01 /etc/hostname /tmp/

本地Linux主机查看导出的文件

不信你不学!虚拟化技术之kvm宿主机、存储池管理命令用法及排错_虚拟机_04

6.virt-copy-in复制本地文件到虚拟机内部

echo “hehehe” > /root/hehe.txt

virt-copy-in -d clone01 /root/resize.txt /tmp/

virt-cat -a centos7.qcow2 /tmp/hehe.txt

不信你不学!虚拟化技术之kvm宿主机、存储池管理命令用法及排错_虚拟机_05

7.guestfish 交互式查看虚拟机内部文件

仅支持部分命令。

guestfish --rw -i -d centos7.0

不信你不学!虚拟化技术之kvm宿主机、存储池管理命令用法及排错_linux_06

8.guestmount 挂载虚拟机分区到外部目录,并测试

mkdir /centos7_root

guestmount -a centos7.qcow2 -m /dev/cl/root --rw /centos7_root/

不信你不学!虚拟化技术之kvm宿主机、存储池管理命令用法及排错_linux_07

echo "haha" > /centos7_root/test.txt
virt-cat -a centos7.qcow2 /test.txt

管理磁盘

1.虚拟磁盘类型
fixed: 定盘、厚盘,指定固定大小,占用绝对空间
dynamic:动盘、瘦盘,指定大小,但用多少占多少
Differencing:差分盘,一般用于链接克隆机,只记录和母盘差异的数据

2.常见的虚拟磁盘格式
kvm: raw qcow2
vmware: vmdk
microsoft: vhd vhdx
oracle: vdi

3.查看qemu-img支持的磁盘格式

qemu-img --help | grep Supported

不信你不学!虚拟化技术之kvm宿主机、存储池管理命令用法及排错_kvm_08

 

4.qemu-img用法

创建raw格式磁盘文件
qemu-img create t1.img 1g

创建qcow2格式磁盘文件
qemu-img create -f qcow2 test1.qcow2 1g

创建qcow2格式的厚盘文件
qemu-img create -f qcow2 test2.qcow2 1g -o preallocation=full

5.创建链接克隆虚拟机磁盘文件
qemu-img create -f qcow2 -o backing_file=centos7.qcow2 centos7_clone.qcow2

基于链接克隆文件创建克隆虚拟机
virt-install --import --name=centos7_clone --vcpus=1 --ram=1024 --disk path=centos7_clone.qcow2 --network network=default --graphics vnc,listen=0.0.0.0 --os-type=linux --os-variant=centos7.0

6.修改虚拟磁盘大小(注意:磁盘可以扩展,但谨慎压缩,不能有快照)

qemu-img resize centos7.qcow2 +2G

不信你不学!虚拟化技术之kvm宿主机、存储池管理命令用法及排错_kvm_09

 

报错:无法调整有快照的图像的大小;这个图像不支持调整大小

不信你不学!虚拟化技术之kvm宿主机、存储池管理命令用法及排错_linux_10

 

解决:删除快照

管理存储池

1.kvm存储模式
文件系统:方便;存储数据需要经过宿主机的文件系统,稍慢
设备:速度快,但不易于扩展,不能做快照

2.存储池:对存储进行统一管理、简化操作

3.存储池相关命令

列出存储池

virsh pool-list --details

不信你不学!虚拟化技术之kvm宿主机、存储池管理命令用法及排错_centos_11

查看某个存储池详细信息

virsh pool-info kvm

不信你不学!虚拟化技术之kvm宿主机、存储池管理命令用法及排错_linux_12

列出存储池中卷的信息

virsh vol-list kvm

不信你不学!虚拟化技术之kvm宿主机、存储池管理命令用法及排错_centos_13

4.创建基于目录的存储池

创建目录:mkdir /kvm_store2

定义存储池:

virsh pool-define-as test dir --target “/kvm_store/”

不信你不学!虚拟化技术之kvm宿主机、存储池管理命令用法及排错_虚拟机_14

 

启动存储池

virsh pool-start test

不信你不学!虚拟化技术之kvm宿主机、存储池管理命令用法及排错_centos_15

设置存储池自动启动

不信你不学!虚拟化技术之kvm宿主机、存储池管理命令用法及排错_kvm_16

virsh pool-autostart test

验证:

不信你不学!虚拟化技术之kvm宿主机、存储池管理命令用法及排错_centos_17

 

不信你不学!虚拟化技术之kvm宿主机、存储池管理命令用法及排错_运维_18

5.创建基于分区的存储池
创建分区
fdisk /dev/sdd

格式化文件系统
mkfs.ext4 /dev/sdd1

创建挂载点目录
mkdir /resize

定义基于分区的存储池
virsh pool-define-as test1 fs --source-dev “/dev/sde1” --target “/fenqu”

启用
virsh pool-start test1

验证:

不信你不学!虚拟化技术之kvm宿主机、存储池管理命令用法及排错_centos_19

6.创建基于磁盘的存储池
注意:只支持gpt格式的磁盘,默认磁盘是MBR,必须先转换格式

cat /etc/libvirt/storage/test2.xml

 
test2


/dev

virsh pool-define test2.xml
virsh pool-start test2

报错:需要生成的设备’/dev/sdb '无法识别;

不信你不学!虚拟化技术之kvm宿主机、存储池管理命令用法及排错_linux_20

 

解决:配置文件device类型是gpt,而默认创建的均是MBR类型,所以找不到需要的gpt格式/dev/sdc;转换格式为gpt即可!

转换方法:

1)进入交互式界面

不信你不学!虚拟化技术之kvm宿主机、存储池管理命令用法及排错_虚拟机_21

 

2)输入转化命令,mklabel

3)输入转换成什么标签类型gpt

不信你不学!虚拟化技术之kvm宿主机、存储池管理命令用法及排错_centos_22

 

验证:成功

不信你不学!虚拟化技术之kvm宿主机、存储池管理命令用法及排错_centos_23

 

virsh pool-autostart test2

7.基于LVM的存储池

先建卷组kvmvg

不信你不学!虚拟化技术之kvm宿主机、存储池管理命令用法及排错_centos_24

 

不信你不学!虚拟化技术之kvm宿主机、存储池管理命令用法及排错_linux_25

 

定义存储池virsh pool-define-as kvmvg logical --source-name=kvmvg --target=/dev/kvmvg

不信你不学!虚拟化技术之kvm宿主机、存储池管理命令用法及排错_运维_26

8.基于iscsi的存储池
virsh pool-define-as --name storage01 --type iscsi --source-host 192.168.2.20 --source-dev iqn.2017-10.com.cloud.www:storage001 --target /dev/disk/by-path

virsh pool-start storage01
virsh pool-autostart storage01

9.基于nfs的存储池
相当于将存储的数据可在本地操作挂载点目录,实际是将数据存储于远端的nfs服务器的共享目录

1)检查nfs共享目录:

不信你不学!虚拟化技术之kvm宿主机、存储池管理命令用法及排错_kvm_27

2)执行命令挂载

virsh pool-define-as --name kvmnfs --type netfs --source-host 172.16.0.136 --source-path /nfsshare(NFS共享目录) --target /nfstest(宿主机本地目录)

不信你不学!虚拟化技术之kvm宿主机、存储池管理命令用法及排错_centos_28

 

3)验证:

不信你不学!虚拟化技术之kvm宿主机、存储池管理命令用法及排错_centos_29


 

特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像
精选文章
thumb 中国研究员首次曝光美国国安局顶级后门—“方程式组织”
thumb 俄乌线上战争,网络攻击弥漫着数字硝烟
thumb 从网络安全角度了解俄罗斯入侵乌克兰的相关事件时间线
下一篇
轻松记海量Linux运维面试题 2022-11-21 11:51:09