Ubuntu 16.04.6 LTS 安装 KVM 虚拟机
Ubuntu 16.04.6 LTS 安装 KVM 虚拟机
环境描述
系统 | IP | 物理网卡 | |
---|---|---|---|
宿主机 | Ubuntu 16.04.6 LTS | 192.168.0.200 | enp4s0 |
虚拟机 | CentOS Linux release 7.9.2009 | 192.168.0.201 |
一、查看CPU是否支持虚拟化
egrep "svm|vmx" /proc/cpuinfo
二、安装kvm软件
apt-get update && apt-get install -y kvm qemu-kvm qemu virt-manager virtinst libvirt-bin python-libvirt virt-viewer virt-manager bridge-utils
三、查看系统是否支持kvm模版
lsmod | grep kvm
四、配置虚拟网桥
- 根据实际情况进行修改
cat /etc/network/interfaces
# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback
auto br0
iface br0 inet static
address 192.168.0.200
netmask 255.255.255.0
gateway 192.168.0.1
bridge_ports enp4s0
bridge_stp on
bridge_fd 0
五、查看网络配置
# 重启网卡
systemctl restart network
# 查看网卡信息
ifconfig
br0 Link encap:Ethernet HWaddr xx:xx:ss:ks:a1:gg
inet addr:192.168.0.200 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: xxxx::1111f:622f:f126:a5aa/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:161697 errors:0 dropped:0 overruns:0 frame:0
TX packets:106416 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:15306235 (15.3 MB) TX bytes:31204946 (31.2 MB)
enp4s0 Link encap:Ethernet HWaddr xx:xx:ss:ks:a1:gg
inet addr:192.168.0.200 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: xxxx::1111f:622f:f126:a5aa/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:815000 errors:0 dropped:0 overruns:0 frame:0
TX packets:217030 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:977753453 (977.7 MB) TX bytes:39798281 (39.7 MB)
Memory:f0200000-f027ffff
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:196730 errors:0 dropped:0 overruns:0 frame:0
TX packets:196730 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:47435454 (47.4 MB) TX bytes:47435454 (47.4 MB)
virbr0 Link encap:Ethernet HWaddr 00:00:00:00:00:00
inet addr:192.168.122.1 Bcast:192.168.122.255 Mask:255.255.255.0
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:185 errors:0 dropped:0 overruns:0 frame:0
TX packets:1 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:11789 (11.7 KB) TX bytes:87 (87.0 B)
#查看虚拟网桥
brctl show
bridge name bridge id STP enabled interfaces
br0 8000.ac1f6b46a5aa yes enp4s0
virbr0 8000.000000000000 yes
六、安装虚拟机
CentOS ISO下载地址:https://www.centos.org/download/
数据目录:/data/kvm/vm
ISO文件目录:/data/kvm/iso
# 虚拟磁盘格式支持qcow2格式(磁盘空间动态增长),若要使用这种格式,首先需要创建该格式磁盘
# Img名称:centos7_01.img
# 磁盘大小:100G
qemu-img create -f qcow2 /data/kvm/vm/centos7_01.img 100G
# 创建磁盘格式为qcow2的虚拟机
virt-install --name=centos7_01 --ram 8192 --vcpus=4 --disk path=/data/kvm/vm/centos7_01.img,format=qcow2,size=100,bus=virtio --accelerate --cdrom=/data/kvm/iso/CentOS-7-x86_64-DVD-2009.iso --vnc --vncport=15900 --vnclisten=0.0.0.0 --network bridge=br0,model=virtio --noautoconsole
选项解释:
--name:指定虚拟机名称
--ram:指定虚拟机内存大小
--vcpus:指定虚拟机CPU核心数量,取决于物理机的核心数量
--disk:指定虚拟磁盘,默认磁盘格式是raw
path=/data/kvm/vm/centos7_01.img:指定虚拟磁盘名称及存放路径
size=7:指定虚拟磁盘容量,单位为G
bus=virtio:指定虚拟磁盘类型
--accelerate:加速
--cdrom:指定虚拟机镜像的位置、名称
--network:指定网络类型
bridge:指定桥接网卡
model:指定网卡类型
--vnc:启用VNC远程管理,一般安装系统都要启用。
--vncport:指定VNC监控端口,默认端口为5900,端口不能重复(如安装第二台机器需指定不同端口)。
--vnclisten:指定VNC绑定IP,默认绑定127.0.0.1,这里改为0.0.0.0。
# 查看正在运行的虚拟机
virsh list
Id Name State
-------------------------------------------
1 centos7_01 running
接下来可以用vnc软件远程宿主机进行服务器的安装操作
示例:
# 启动vnc服务,首次启动设置密码
vncserver
# 远程(windows系统需要下载VNC Viewer软件。MAC系统Screen Sharing屏幕共享)
VNC地址:192.168.0.200:15900
输入密码登录即可
// 图形页面 virt-manager
CentOS安装过程 略...
KVM 虚拟机日常操作
# kvm虚拟机默认配置文件位置:/etc/libvirt/qemu
# 子目录networks/autostart是配置kvm虚拟机开机自动启动目录
ls /etc/libvirt/qemu
centos7_01.xml networks
ls /etc/libvirt/qemu/networks
autostart default.xml
# 查看虚拟机状态
virsh list --all
# 启动kvm虚拟机
virsh start <kvm_name>
# 关闭kvm虚拟机
virsh shutdown <kvm_name>
# 若不能使用工具关闭linux虚拟机,需要手动在Linux虚拟机中开启电源管理服务
service acpid start
chkconfig acpid on
# 强制关闭电源
virsh destory <kvm_name>
# 通过配置文件启动虚拟机
virsh create /etc/libvirt/qemu/centos7_01.xml
# 配置开机自启动虚拟机
virsh autostart <kvm_name>
cd /etc/libvirt/qemu
virsh autostart centos7_01
ls -l
lrwxrwxrwx 1 root root 31 8月 16 13:52 centos7_01.xml -> /etc/libvirt/qemu/centos7_01.xml
# 设置开机自动启动后,在/etc/libvirt/qemu目录下会生成autostart目录,在该目录中会有指向虚拟机配置文件的软链接
# 导出虚拟机配置文件 (可通过此种方式备份虚拟机配置文件)
virsh dumpxml centos7_01 > /tmp/centos7_01_xml
# 删除kvm虚拟机(注意:删除时仅删除虚拟机的配置文件,不会删除磁盘文件 )
virsh undefine centos7_01
# 重新定义虚拟机配置文件
cd /etc/libvirt/qemu/
mv /tmp/centos7_01_xml /etc/libvirt/qemu/centos7_01_xml.xml
virsh define /etc/libvirt/qemu/centos7_01_xml.xml
# 编辑虚拟机配置文件
virsh edit <kvm_name>
# 挂起服务器
virsh suspend <kvm_name>
# 恢复服务器
virsh resume <kvm_name>
给虚拟机添加一块新磁盘
一、添加虚拟硬盘文件
qemu-img create -f qcow2 /data/kvm/vm/centos7_01_data2.img 100G
新磁盘存放位置: /data/kvm/vm/centos7_01_data2.img
磁盘大小:100G
-f 指定虚拟磁盘的格式
二、将新创建的虚拟磁盘添加至目标虚拟机中
virsh attach-disk centos7_01 /data/kvm/vm/centos7_01_data2.img vdb --persistent --subdriver=qcow2
虚拟机名:centos7_01
新磁盘存放位置: /data/kvm/vm/centos7_01_data2.img
虚拟机中磁盘的标识:vdb
三、检查磁盘是否添加成功
- 在运行上面命令成功后,登录目标虚拟机(centos7_01)上运行
fdisk -l
可以看到一块新增100G大小的新磁盘。
四、格式化磁盘并挂载(格式化成LVM)
新磁盘名为:/dev/vdb
创建PV:pvcreate /dev/vdb
创建VG:vgcreate data-vg /dev/vdb
创建LV:lvcreate -L 99G -n data-lv data-vg
运行fdisk -l可以查看到lv磁盘
格式化:mkfs.xfs /dev/data-vg/data-lv
查看lv的UUID:blkid /dev/mapper/data--vg-data--lv
/dev/mapper/data--vg-data--lv: UUID="c3506f0a-af69-446e-9196-7c1ee78563ce" TYPE="xfs"
创建挂载目录:mkdir /data
添加开机自动挂载:
vim /etc/fstab
UUID=c3506f0a-af69-446e-9196-7c1ee78563ce /data xfs defaults 0 0
挂载:mount -a
查看:df -hT
/dev/mapper/data--vg-data--lv xfs 99G 33M 99G 1% /data
—— Share every essays ——