kvm虚拟化学习笔记(一)之kvm虚拟化环境安装
1.操作系统安装
本文采用Centos6.4X64操作系统,也可以采用RHEL/CentOS6.x。
(1)查看系统版本、内核版本
[root@KVM ~]# cat /etc/redhat-release
CentOS release 6.4 (Final)
[root@KVM ~]# uname -a
Linux KVM 2.6.32-358.el6.x86_64 #1 SMP Fri Feb 22 00:31:26 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
注: 2.6.20以下的内核需要升级。
(2)关闭selinux,iptables,重启后生效
①. 关闭selinux
[root@kvm ~]# vim /etc/sysconfig/selinux
SELINUX=disabled
②. 关闭iptables
[root@kvm ~]# iptables -F
[root@kvm ~]# iptables -X
[root@kvm ~]# /etc/init.d/iptables save
[root@kvm ~]# /etc/init.d/iptables stop
(3)重启
[root@kvm ~]# reboot
2.虚拟化环境配置
(1)VMware内的Centos开启虚拟化
说明1:半虚拟化是不能运行与安装KVM虚拟机的。
(2) 查看系统是否支持KVM虚拟化
[root@KVM ~]# egrep ‘(vmx|svm)’ –color=always /proc/cpuinfo
若实际环境没有, 需要到主板BIOS中开启Virtual Technolege(VT, 虚拟化技术)
(3) 安装kvm软件包
[root@KVM ~]# yum -y install kvm python-virtinst libvirt tunctl bridge-utils virt-manager qemu-kvm-tools virt-viewer virt-v2v libguestfs-tools qemu-kvm gcc*
3.查看虚拟化环境
(1)查看虚拟机环境
[root@KVM ~]# /etc/init.d/libvirtd start
[root@KVM ~]# virsh -c qemu:///system list
Id Name State
—————————————————-
(2)查看kvm模块支持
[root@KVM ~]# lsmod |grep kvm
kvm_intel 55624 0
kvm 338535 1 kvm_intel
(3)查看虚拟工具版本
[root@KVM ~]# virsh –version
0.10.2
[root@KVM ~]# virt-install –version
0.600.0
[root@KVM ~]# ln -s /usr/libexec/qemu-kvm /usr/bin/qemu-kvm
[root@KVM ~]# qemu-kvm -version
QEMU PC emulator version 0.12.1 (qemu-kvm-0.12.1.2-2.448.el6_6.4), Copyright (c) 2003-2008 Fabrice Bellard
4.手动配置虚拟网桥
(1)关闭networkmanager服务
[root@KVM ~]# /etc/init.d/NetworkManager stop
[root@KVM ~]# chkconfig NetworkManager off
(2)创建br0网k
[root@KVM ~]# cd /etc/sysconfig/network-scripts/
[root@KVM network-scripts]# cp ifcfg-eth0 ifcfg-br0
[root@KVM network-scripts]# vim ifcfg-eth0
DEVICE=eth0
HWADDR=00:0C:29:41:DA:81
TYPE=Ethernet
UUID=21501ff5-e313-494c-a402-50f2a84f1f5c
ONBOOT=yes
NM_CONTROLLED=yes
BRIDGE=br0
[root@KVM network-scripts]# vim ifcfg-br0
DEVICE=br0
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=192.168.15.14
NETMASK=255.255.255.0
GATEWAY=192.168.15.2
DNS1=114.114.114.114
TYPE=Bridge
(3)重启network服务。
[root@KVM network-scripts]# /etc/init.d/network restart
(4)查看网桥br0.
(4)查看网桥
到此kvm虚拟化环境安装完毕。
kvm虚拟化学习笔记(二)之windows kvm虚拟机安装
(2) 开始安装
[root@KVM ~]# cat create_win_kvm.sh
1
2
3
4
5
6
7
8
9
10
11 virt-install \
--name=win2003_1 \
--ram 1024 \
--vcpus=2 \
--disk path=/data/img/win2003_1.img,size=8 \
--accelerate \
--cdrom /data/win_server_2003_R2x64.iso \
--vnc \
--vncport=5915 \
--vnclisten=0.0.0.0 \
--network bridge=br0 --force --autostart
(3) 通过vnc连接,然后进行安装过程,也可以通过控制台继续安装过程。
注:文件复制完毕后,windows会重启,这里虚拟机会关闭,需要手动启动,而且VNC无法使用。
启动win2003_1后用vnc连接安装wind2003时出现如下
(4) 接上面,登录控制台。
如果其它环境无法连接控制台,可以远程安装vnc服务器端工具,通过vnc登录服务器,可以最终安全完成。无需要我们分两步。
##双击win2003_1
(5) 手动挂载光驱,如下图所示,一步一步的操作如下。
到此,windows server 2003 kvm虚拟机安装完毕,后面将介绍如何对windows进行性能方面的优化。
说明:如果在KVM虚拟化平台上Centos 6.6上安装vnc server可以直接通过vnc全程安装完毕。
kvm虚拟化学习笔记(三)之linux kvm虚拟机安装
1.上传ISO文件,这里采用Centos 6.4x64iso
2.开始安装Centos6.4
(1)raw格式磁盘
[root@KVM ~]#vim create_kvm.sh
1
2
3
4
5
6
7
8
9
10
11
12 virt-install \
--name centos2 \ ##虚拟机名称
--ram 512 \ ##分配内存大小(默认大小MB)
--vcpus=1 \ ##分配CPU核心数,最大与时提及CPU核心数相同
--disk path=/data/img/kvm_centos2.img,size=10 \ ##指定虚拟机镜像(size单位为GB)
--network bridge=br0 \ ##指定网络
--cdrom=/data/CentOS-6.4-x86_64-bin-DVD1.iso \ ##指定安装镜像iso
--accelerate \ ##加速
--vnclisten=0.0.0.0 \ ##指定VNC绑定IP,默认绑定127.0.0.1,这里改为0.0.0.0
--vncport=5911 \ ##指定VNC监听端口(默认为5900)
--vnc ##启用VNC管理
注: 每行"\"后面不要带有空格.
如果采用qcow2磁盘格式,需要事先创建qcow2格式虚拟磁盘 (2)qcow2格式(空间动态增长)2015.7.10日更新
[root@KVM ~]# qemu-img create -f qcow2 /data/img/Centos3.img 3G
[root@KVM ~]# sh create_qcow2_kvm.sh
[root@KVM ~]# echo $?
0
[root@KVM ~]# virsh list
说明:在linux系统安装开始就要注意添加提高性能的一些参数,后面就不需要做一些调整了。
3.开始通过VNC进行连接,进行安装过程。
4.登录操作系统查看
(1) 查看虚拟机列表
ps: Centos1是我的测试机. centos2和centos3是新创建的。 centos2安装完操作系统自动关闭了, 需要手动启动. centos3安装完后也需要手动启动
[root@KVM ~]# virsh start centos2
Domain centos2 started
[root@KVM ~]# virsh list –all|grep centos2
11 centos2 running
(2) centos2、centos3主机自动获取IP地址
[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# cp ifcfg-eth0 ifcfg-eth0.bak
[root@localhost network-scripts]# dhclient
[root@localhost network-scripts]# ip a
(3) 清空iptables规则, 通过sshd登录该主机
[root@localhost ~]# iptables -F
[root@localhost ~]# iptables -X
[root@localhost ~]# /etc/init.d/iptables restart
(3) 安装电源服务
[root@localhost ~]# yum -y install acpid
[root@shadowsocks ~]# /etc/init.d/acpid start
[root@shadowsocks ~]# chkconfig acpid on
至此Centos 6.4X64KVM虚拟机安装完毕。
kvm虚拟化学习笔记(四)之kvm虚拟机日常管理与配置
(2) virsh命令帮助
[root@KVM ~]# virsh –help
或直接virsh命令和,再执行子命令。如下所示。
[root@KVM ~]# virsh
virsh # help #帮助
……
virsh # quit #退出
(3) 查看kvm虚拟机状态
[root@KVM ~]# virsh list –all
KVM虚拟机关机或断电
(1) 关机
默认情况下virsh工具不能对linux虚拟机进行关机操作,linux操作系统需要开启与启动acpid服务。在安装KVM linux虚拟机必须配置此服务。
[root@Centos1 ~]# yum -y install acpid
[root@Centos1 ~]# /etc/init.d/acpid start
[root@KVM ~]# virsh shutdown centos1
(2) 强制关闭电源
[root@KVM ~]# virsh destroy centos2
autostart目录是kvm虚拟机开机自启动目录,可以看到该目录中有KVM配置文件链接。
kvm虚拟化学习笔记(五)之windows虚拟机性能调整
在通过KVM安装WindowsXP/2003/7/2008操作系统后,由于默认的磁盘驱动(IDE)性能与网卡驱动(RTL8139100M) 的性能都极其低下,需要调整,通过加载Redhatvirtio驱动来提高kvmwindows虚拟机磁盘与网卡性能。更换后的驱动为SCSI磁盘驱动, 与virtio网卡驱动(1000M)。
提升性能方式:
(1)采用LVM逻辑卷上安装虚拟机,采用更换磁盘驱动为SCSI来提升性能。
(2)修改默认网卡类型与驱动。
新可以在安装windows的时候加载驱动,也可以安装后加载驱动,本文就是采用系统安装之后再加载驱动的方式。
1.本文相关软件下载地址
ISO驱动:virtio-win-0.1-52.iso
http://alt.fedoraproject.org/pub/alt/virtio-win/latest/images/bin/virtio-win-0.1-52.iso
软驱驱动:virtio-win-1.1.16.vfd可在down.51cto.com下载频道中找。
2.加载驱动思路
(1)使用默认方式来安装Windows系统,安装系统完成后,再安装virtio磁盘驱动,最后修改kvm启动参数,设置磁盘为virtio。
(2)在开始安装时直接按F6加载virtio驱动。
由于本文事先已经安装好了windowsServer2003x86操作系统,所以这里采用第一种方式安装virtio驱动。直接将配置文件修改,在没有加载virtio驱动的情况下,会造成系统无法启动。
3.替换驱动
(1)通过正常的图形界面方式进行安装windows虚拟机,这时驱动都是采用的默认的。
(2)在控制台上添加一块virtio磁盘,一块virtio网卡,光驱挂载virtioISO驱动光盘。
随例添加一块virtiodisk磁盘。点击Add Hardware(添加硬件)
添加一块virtio网卡。
挂载驱动iso文件。将刚下载的iso上传到KVM服务端内。
(3)进入系统打开设备管理器,刷新硬件,需要安装scsi与以太网控制器驱动。
在SCSI控制器上右键,更新驱动程序,浏览到D盘\wxp\x86目录,2003驱动目录,下一步开始加载驱动。
继续安装驱动。
(4)安装以太网控制器驱动。
(4)重启系统验证驱动加载情况。
第二块网卡配置新的IP地址,然后关机。
(5)修改虚拟机配置文件
思路:替换与修改原磁盘驱动配置,与网卡配置,修改内容如下:
1 # virsh edit wintest01
修改后的内容:
1
2
3
4
5
6
7
8
9
10
11
12 <disk type='file' device='disk'>
<driver name='qemu' type='raw' cache='writeback'/>
<source file='/data/wintest01.img'/>
<target dev='vda' bus='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
</disk>
<interface type='bridge'>
<mac address='52:54:00:da:f1:a6'/>
<source bridge='br0'/>
<model type='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
</interface>
(6)进入系统更新网卡和SCSI控制器的驱动,重启后就会应用新的硬件了。
5.解决KVM虚拟机鼠标同步问题
kvm虚拟化windows操作系统鼠标有点不灵活等问题,在这里通过以下方式解决。在虚拟机的<devices>配置中增加:
1
2 # virsh edit wintest01
<input type=’tablet’ bus=’usb’/>
至此windows磁盘与网卡驱动调整以提高性能方法配置完毕。
kvm虚拟化学习笔记(六)之kvm虚拟机控制台登录配置
vm虚拟机能否像xen虚拟机一样通过virsh console 一样采用字符界面进行linux虚拟机控制台呢,答案是肯定的,默认情况下该命令是不起作用的,需要修改相关文件才能实现。
(2) 修改/etc/grub.conf文件
[root@Centos1 ~]# vim /etc/grub.conf
(3) 修改/etc/inittab文件
[root@Centos1 ~]# vim /etc/inittab
(4) 重启
[root@Centos1 ~]# reboot
至此virsh console 命令进入控制台配置完毕,今后将对linux虚拟机很方便的console方式进行管理。
kvm虚拟化学习笔记(七)之kvm虚拟机克隆
kvm虚拟机的克隆分为两种情况,本文也就通过以下两种情况进行克隆,克隆虚拟机为Centos 6.4X64。
(1) KVM主机本机虚拟机直接克隆。
(2) 通过复制配置文件与磁盘文件的虚拟机复制克隆(适用于异机的静态迁移)。
虚拟机磁盘文件: /data/img/Centos3.img
虚拟机名称:Centos3
[root@KVM ~]# virsh list –all
(2) 开始克隆
[root@KVM ~]# virt-clone -o centos3 -n Linux3 -f /data/img/Linux3.img
说明:克隆虚拟机应保持关闭状态,以centos3做为源,克隆centos3虚拟机,并创建名称为Linux3虚拟机,使用磁盘文件/data/img/Linux3.img
(3) 启动虚拟机
[root@KVM ~]# virsh start Linux3
[root@KVM ~]# virsh list
(4) 修改主机名,IP地址等
[root@localhost ~]# hostname Linux3
[root@localhost ~]# bash
[root@Linux3 ~]# vi /etc/sysconfig/network
HOSTNAME=Linux3
修改IP地址
[root@Linux3 ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=192.168.15.135
NETMASK=255.255.255.0
GATEWAY=192.168.15.2
DNS1=114.114.114.114
[root@Linux3 ~]# /etc/init.d/network restart
[root@KVM ~]# virsh dumpxml centos3 > /etc/libvirt/qemu/Linux03.xml
(2) 复制kvm虚拟机磁盘文件
本系列文章都是采用虚拟磁盘文件进行测试,没有使用lvm卷。
通过查看配置文件:虚拟磁盘位置<source file=’/data/Centos3.img’/>
[root@KVM ~]# cp /data/img/Centos3.img /data/img/Linux03.img
(3) 直接编辑修改配置文件
修改name,uuid,disk位置,vnc端口
此时还是将该配置文件注册进来,无法通过virsh edit进行编辑。
[root@node1 data]# vi /etc/libvirt/qemu/Linux03.xml
<name>Linux03</name>
<uuid>8f2bb4a7-c7ed-32aa-3676-9fb05923260d</uuid>
<source file=’/data/img/Linux03.img’/>
<graphics type=’vnc’ port=’5916′ autoport=’no’ listen=’0.0.0.0′>
(4) 定义新虚拟机配置文件
[root@KVM ~]# virsh define /etc/libvirt/qemu/Linux03.xml
[root@KVM ~]# virsh start Linux03
(5) 登录虚拟机进行主机名,IP等修改
[root@localhost ~]# vi /etc/sysconfig/network
HOSTNAME=Linux03
[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=192.168.15.133
NETMASK=255.255.255.0
GATEWAY=192.168.15.2
DNS1=114.114.114.114
本文到此通过两种方式进行kvm虚拟机克隆,其实各有用处。
再次说明:本文克隆的虚拟机是Centos6.4,如果克隆的虚拟机是RHEL/CentOS/OEL7.x操作系统,还需要修改/etc/udev/rules.d/70-persistent-net.rules文件。
kvm虚拟化学习笔记(八)之kvm虚拟机vnc配置
本文是通过vnc方式访问虚拟主机上的KVM虚拟机。
这里的通过vnc方式访问虚拟机不是在kvm虚拟机安装配置vnc服务器,通过虚拟主机的IP地址与端口进行访问,kvm虚拟化对vnc的支持相对来说比xen要好很多,在虚拟主机上配置VNC访问虚拟机,也是为了多提供一种方式访问虚拟机而已。
修改虚拟机配置文件
[root@KVM ~]# virsh edit Linux03
<graphics type=’vnc’ port=’5916′ autoport=’no’ listen=’0.0.0.0′>
<listen type=’address’ address=’0.0.0.0’/>
</graphics>
启动虚拟机并测试VNC
[root@KVM ~]# netstat -tunlp|grep qemu-kvm
tcp 0 0 0.0.0.0:5916 0.0.0.0:* LISTEN 4134/qemu-kvm
改为字符界面启动,vnc也能出现界面,这点比xen虚拟化vnc要好。vnc登录如下。到此kvm虚拟机管理已经介绍了两种方式,一种是在KVM虚拟主机上配置VNC,一种是在kvm虚拟主机上配置virsh console控制台,当然虚拟化管理器就不用说了。
kvm虚拟化学习笔记(九)之kvm虚拟机时间配置
注:在虚拟化环境中,虚拟机在长时间运行过程中,时间会变慢,通常的作法是配置ntpdate定时与时间服务器进行时间同步的计划任务。
KVM虚拟机默认采用utc时间,需要专门修改,以及考虑kvm时间同步问题。
关于kvm虚拟机时间问题解决思路
(1) 虚拟机时间慢是所有虚拟化平台的一共性问题。
(2) 解决时间的最终解决方法就是在生产环境中配置时间服务器,kvm虚拟化服务器与kvm机均都要配置时间同步的计划任务,这才是解决这一个问题最终解决方案。
示例:如果能访问互联网,最简单了,需要kvm虚拟机与主机时间同步,但是运行一段时间会慢,一定要做时间同步,特别是对时间敏感的环境。
查看现有磁盘镜像格式与转换
(1) 查看磁盘格式
[root@KVM ~]# qemu-img info /data/img/kvm_centos2.img
(2) 关闭虚拟机并转换磁盘
[root@centos2 ~]# yum -y install acpid ##安装电源服务
[root@KVM ~]# virsh shutdown centos2
(3) 转换磁盘格式
[root@KVM ~]# qemu-img convert -f raw -O qcow2 /data/img/kvm_centos2.img /data/img/kvm_centos2.qcow2
-f 源镜像的格式
-O 目标镜像的格式
查看转换后磁盘大小
查看转换后的格式,已经转换成了qcow2, 这里是拷贝一份,并将格式转成qcow2
[root@KVM ~]# qemu-img info /data/img/kvm_centos2.qcow2
(2) 查看虚拟机镜像快照的版本
[root@KVM ~]# virsh snapshot-list centos2
(3) 查看当前虚拟机镜像快照的版本
可以看到为当前最新的快照版本。
[root@KVM ~]# virsh snapshot-create-as centos2 centos2_snaphshot
[root@KVM ~]# virsh snapshot-current centos2
[root@KVM ~]# virsh snapshot-info centos2 centos2_snaphshot
(4) 查看当前虚拟机镜像文件
[root@KVM ~]# virsh start centos2
[root@centos2 ~]# yum -y install vsftpd
[root@KVM ~]# virsh snapshot-create-as centos2 centos_installftp
[root@KVM ~]# qemu-img info /data/img/kvm_centos2.qcow2
快照配置文件在/var/lib/libvirt/qemu/snapshot/虚拟机名称/下
确认虚拟机是关机状态
(2) 确认需要恢复的快照时间,这里恢复到centos2_installftp
(3) 执行恢复,并确认恢复版本
[root@KVM ~]# virsh snapshot-revert centos2 centos2_installftp
(4) 登录到centos2验证ftp命令
(3) 回到centos2第一个快照(centos2_snaphshot), 并查看centos2状态.
[root@KVM ~]# virsh snapshot-revert centos2 centos2_snaphshot
到此kvm虚拟机快照测试完毕。kvm虚拟化学习笔记进行到这里了,感觉到kvm虚拟化的内容真的很多。水是越来越深了。
kvm虚拟化学习笔记(十一)之kvm虚拟机扩展磁盘空间
kvm虚拟机磁盘空间扩展与xen虚拟机磁盘空间扩展思路一致。原因在于xen/kvm默认的虚拟机磁盘格式为raw,所以方式可以通用。
一、raw磁盘格式扩展思路如下
新添加一块raw格式的磁盘加入到KVM虚拟机,然后通过虚拟机系统lvm逻辑卷管理方式进行管理,扩展磁盘空间。
①. 查看现有磁盘容量
[root@centos1 ~]# df -h
②. 使用dd创建一个磁盘文件
[root@kvm ~]# dd if=/dev/zero bs=1024MB count=2 > /data/img/centos1_new.img
[root@kvm ~]# du -sh /data/img/centos1_new.img
③. 关闭虚拟机
[root@kvm ~]# virsh list
[root@kvm ~]# virsh shutdown centos1
[root@kvm ~]# virsh list –all
④. 修改虚拟主机配置文件
[root@kvm ~]# virsh edit centos1
⑤. 启动虚拟机
[root@kvm ~]# virsh start centos1
⑥. 查看centos1磁盘信息
[root@centos1 ~]# fdisk -l
⑦. 创建磁盘分区,格式化分区, 挂载分区.
[root@centos1 ~]# fdisk /dev/sdb
[root@centos1 ~]# mkfs.ext4 /dev/sdb1
[root@centos1 ~]# mkdir /data
[root@centos1 ~]# mount /dev/sdb1 /data/
[root@centos1 ~]# df -h
直接通过dd命令扩展现有虚拟机磁盘大小,扩展之后,原磁盘大小增大,进入虚拟机系统后,直接通过fdisk分区新添加的空间,然后将该分区并入lvm逻辑卷中,扩大磁盘空间。
①. 关闭扩容kvm(centos1)
[root@kvm ~]# virsh shutdown centos1
[root@kvm ~]# virsh list –all
②. 直接扩展现有磁盘空间(centos1_new.img)
[root@kvm ~]# du -sh /data/img/centos1_new.img
[root@kvm ~]# dd if=/dev/zero bs=1024MB count=2 >> /data/img/centos1_new.img
③. 启动kvm(centos1)
[root@kvm ~]# virsh start centos1
[root@kvm ~]# virsh list
④. 查看分区列表.(注: 创建分区自便)
[root@centos1 ~]# df -h
[root@centos1 ~]# fdisk -l /dev/sdb
二、qcow2磁盘格式扩展思路如下
(1) 可以采用raw磁盘格式磁盘的扩展方式一致的方式进行。
(2) qcow2格式磁盘,直接通过qemu-img 直接扩展qcow2磁盘, 新添加一块raw格式的磁盘加入到KVM虚拟机,然后通过虚拟机系统lvm逻辑卷管理方式进行管理,扩展磁盘空间。
下面将开始通过qcow2格式添加磁盘。
方式一:添加一块qcow2磁盘加入虚拟机
查看现在虚拟机磁盘信息
①. 查看kvm虚拟机(centos1)磁盘格式
[root@kvm ~]# virsh edit centos1
②. 查看磁盘格式信息
[root@kvm ~]# qemu-img info /data/img/kvm_centos1.qcow2
③. 进入虚拟机,查看磁盘容量
[root@centos1 ~]# df -h
④. 添加一块qcow2磁盘
[root@kvm ~]# qemu-img create -f qcow2 /data/img/kvm_centosA1.qcow2 2G
⑤. 关闭kvm(centos1)添加一块qcow2磁盘信息加入配置文件
[root@kvm ~]# virsh shutdown centos1
[root@kvm ~]# virsh edit centos1
⑥. 启动虚拟机并配置磁盘
[root@kvm ~]# virsh start centos1
[root@centos1 ~]# fdisk -l
如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!
赞5
添加新评论1 条评论
2018-01-24 16:00