NSD CLOUD DAY02
1 案例1:xml管理
1.1 问题
熟悉xml文件,并对虚拟机的配置进行调整:
- 导出一个虚拟机的xml配置文件
- 编辑xml文件
- 重新定义虚拟机
- 删除此虚拟机
1.2 步骤
实现此案例需要按照如下步骤进行。
步骤一:导出虚拟机xml的配置文件
1)查看xml配置文件
- [root@room9pc01 ~]# cd /etc/libvirt/qemu/
- [root@room9pc01 qemu]# virsh dumpxml node1
- [root@room9pc01 qemu]# virsh dumpxml node1 > node.xml
- //导出虚拟机node1的配置文件为node.xml
- [root@room9pc01 qemu]# ls
- node.xml
virsh命令: virsh edit 虚拟机名
备注:可以修改name,memory,disk、network等字段
- [root@room9pc01 qemu]# virsh edit node1
- <domain type='kvm'>
- <name>node1</name> //node1为虚拟机的名称,可以随意修改
- <uuid>76d5dc2c-5eef-4e30-8b6c-e58851814f84</uuid> //uuid可以去掉
- <memory unit='KiB'>2048000</memory> //内存大小可以调整
- <currentMemory unit='KiB'>2048000</currentMemory>
- <disk type='file' device='disk'>
- <source file='/var/lib/libvirt/images/rhel7.2.qcow2'/> //后端盘路径
- .. ..
- <interface type='network'>
- <mac address='52:54:00:91:52:e4'/>
- //mac地址和带有address字样的全部去掉
- .. ..
步骤二:重新定义虚拟机
1)重新定义虚拟机
- [root@room9pc01 qemu]# virsh define node1.xml
2)取消定义的虚拟机
- [root@room9pc01 qemu]# virsh undefine node1
2 案例2:安装虚拟机
2.1 问题
本案例要求可以成功安装一个自定义虚拟机:
- 配置一个网络yum,并安装一个虚拟机
- 制作一个虚拟机模板,包括配置yum,网卡等
2.2 步骤
实现此案例需要按照如下步骤进行。
步骤一:配置网络yum源
- [root@room9pc01 ~]# yum -y install vsftpd
- [root@room9pc01 ~]# vim /etc/vsftpd/vsftpd.conf
- listen=YES
- listen_ipv6=NO
- [root@room9pc01 ~]# systemctl restart vsftpd
- [root@room9pc01 ~]# mkdir /var/ftp/centos
- [root@room9pc01 ~]# mount /iso/CentOS-7-x86_64-DVD-1708.iso /var/ftp/centos/
- mount: /dev/loop1 写保护,将以只读方式挂载
- [root@room9pc01 ~]# vim /etc/yum.repos.d/dvd.repo
- [dvd]
- name=dvd
- baseurl=ftp://192.168.1.254/centos
- enabled=1
- gpgcheck=0
- [root@room9pc01 ~]# yum clean all
- [root@room9pc01 ~]# yum repolist
- [root@room9pc01 ~]# cd /var/lib/libvirt/images/
- [root@room9pc01 images]# qemu-img create -f qcow2 node.qcow2 16G
- Formatting 'node.qcow2',fmt=qcow2 size=17179869184 encryption=off cluster_size=65536 lazy_refcounts=off
步骤二:安装一个虚拟机
- [root@room9pc01 images]# virt-manager //真机操作,启动virt-manager
使用virt-manager软件选择新建虚拟机如图-1所示:
图-1
选择安装方式如图-2所示:
图-2
选择内存,cpu和自定义存储如图-3所示:
图-3
选择虚拟机名称和网络如图-4所示:
图-4
选择分区和KDUMP如图-5所示:
图-5
选择创建分区如图-6所示:
图-6
选择standard Partition如图-7所示:
图-7
创建一个根分区如图-8所示:
图-8
步骤三:制作一个虚拟机模板
1)禁用selinux
- [root@localhost ~]# vim /etc/selinux/config
- SELINUX=disabled
2)卸载防火墙与NetworkManager
- [root@localhost ~]# yum -y remove NetworkManager-* firewalld-* python-firewall
3)配置yum源
- [root@localhost ~]# vim /etc/yum.repos.d/dvd.repo
- [dvd]
- name=dvd
- baseurl=ftp://192.168.1.254/centos
- enabled=1
- gpgcheck=0
- [root@localhost ~]# yum clean all
- [root@localhost ~]# yum repolist
4)导入公钥
注意:把/etc/yum.repos.d/dvd.repo的gpgcheck=0改成gpgcheck=1
- [root@localhost ~]# lftp 192.168.1.254
- lftp 192.168.4.254:~> cd centos
- lftp 192.168.4.254:/centos> get RPM-GPG-KEY-CentOs-7
- lftp 192.168.4.254:/centos> exit
- [root@localhost ~]# rpm --import RPM-GPG-KEY-CentOs-7
- [root@localhost ~]# yum -y install net-tools vim-enhanced bridge-utils psmisc
5)配置网卡
- [root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
- DEVICE="eth0"
- ONBOOT="yes"
- IPV6INIT="no"
- TYPE="Ethernet"
- BOOTPROTO ="dhcp"
- [root@localhost ~]# systemctl restart network
6)禁用空路由
- [root@localhost ~]# vim /etc/sysconfig/network
- NOZEROCONF="yes"
7)添加console配置
- [root@localhost ~]# vim /etc/default/grub
- GRUB_CMDLINE_LINUX="biosdevname=0 net.ifnames=0 console=ttyS0,115200n8"
- GRUB_DISABLE_LINUX_UUID="true"
- GRUB_ENABLE_LINUX_LABEL="true"
8)重新生成grub.cfg
- [root@localhost ~]# grub2-mkconfig -o /boot/grub2/grub.cfg
9)安装扩展分区软件
- [root@localhost ~]# yum install -y cloud-utils-growpart
10)第一次开机自动扩容
- [root@localhost ~]# /usr/bin/growpart /dev/vda 1
- [root@localhost ~]# /usr/sbin/xfs_growfs /
11)关闭虚拟机后执行信息清理工作
- [root@room9pc01 ~]# virt-sysprep -d centos7.0
- //真机上面操作,centos7.0为虚拟机名称
3 案例3:离线访问虚拟机问题
本案例要求可以离线访问虚拟机:
- 利用xml文件生成一个新的虚拟机
- 利用guestmount实现离线访问虚拟机
3.1 步骤
实现此案例需要按照如下步骤进行。
步骤一:用xml生成一个新的虚拟机
- [root@room9pc01 ~]# cd /etc/libvirt/qemu/
- [root@room9pc01 qemu]# cp centos7.0.xml local.xml
- [root@room9pc01 qemu]# vim local.xml
- <domain type='kvm'>
- <name>local</name> //修改名字
- <memory unit='KiB'>2048000</memory> //修改内存
- <currentMemory unit='KiB'>2048000</currentMemory>
- ...
- <source file='/var/lib/libvirt/images/local.img'/> //img文件位置
注意:除这些外还要把mac地址删掉,带address字样的全部删除
- [root@room9pc01 ~]# cd /var/lib/libvirt/images/
- [root@room9pc01 images]# qemu-img create –b node.qcow2 –f qcow2 local.img
- [root@room9pc01 images]# virsh define /etc/libvirt/qemu/local.xml
- [root@room9pc01 images]# virsh start local
- [root@room9pc01 images]# virsh console local
步骤二:guestmount实现离线访问
基本用法:guestmount -a 虚拟机磁盘路径 -i /挂载点
-a:指定虚拟磁盘
-i:挂载点
- [root@room9pc01 ~]# mkdir /mnt/kdisk
- [root@room9pc01 ~]# guestmount -a node1.qcow2 -i /mnt/kdisk
- [root@room9pc01 ~]# cd /mnt/kdisk
- [root@room9pc01 kdisk]# ls
- bin home media opt sbin tmp
- boot lib misc proc selinux usr