KVM总结文档一(CentOS-6.5)

一:kvm安装


两台服务器

192.168.115.18
192.168.115.19

0.修改物理服务器时区

cp  /usr/share/zoneinfo/Asia/Shanghai  /etc/localtime
yum  install  ntpdate  -y
echo  "*/5 * * * *  root   ntpdate  cn.pool.ntp.org"  >> /etc/crontab  &&  cat  /etc/crontab
service crond  stop  &&  service   crond  start

1.修改主机名

echo "192.168.1.154   kvm-node154.com   kvm-node154"  >>/etc/hosts
echo "192.168.1.155   kvm-node155.com   kvm-node155"  >>/etc/hosts
cat  /etc/hosts

2.修改内核模式(兼容内核)

sed  -i  "s/default=0/default=1/g"    /boot/grub/grub.conf   &&  cat  /boot/grub/grub.conf

3.关闭SELINUX

sed  -i   "s/SELINUX=enforcing/SELINUX=disabled/g"  /etc/selinux/config  &&  cat  /etc/selinux/config

4.关闭防火墙和NetworkManager

chkconfig  iptables  off
chkconfig  ip6tables off
chkconfig  NetworkManager   off

5.重启

yum  update  -y
reboot

6.重启完毕后,检测是否支持虚拟化

cat  /proc/cpuinfo | grep  -E  "vmx|svm"   --color=always

7.安装kvm虚拟化所需要的模块和工具

yum  install kvm python-virtinst libvirt tunctl bridge-utils  virt-manager  qemu-kvm-tools virt-viewer virt-v2v   libguestfs-tools   -y

8.配置libvirt客户端服务常用的远程连接别名

vi  /etc/libvirt/libvirt.conf
uri_aliases = [
        "kvm154=qemu+ssh://[email protected]/system",
        "kvm155=qemu+ssh://[email protected]/system",
]

9.启动libvirtd守护进程进行客户端登录测试

service libvirtd   start
virsh -c  kvm154
virsh -c  kvm155

10.配置libvirtd服务端,关闭TLS安装连接,打开TCP连接,设置TCP监听端口,TCP连接不适用认证授权的方式,设置socket的保存位置.

cp  /etc/libvirt/libvirtd.conf    /etc/libvirt/libvirtd.conf_$(date +%F)
cat  >>  /etc/libvirt/libvirtd.conf   << EOF
listen_tls = 0
listen_tcp = 1
tcp_port = "16666"
unix_sock_dir = "/var/run/libvirt"
auth_tcp = "none"
EOF
service  libvirtd  stop  &&  service  libvirtd  start

11.使libvirtd关闭TLS和打开TCP功能生效,两种方式

方法一:
sed -i 's/#LIBVIRTD_ARGS="--listen"/LIBVIRTD_ARGS="--listen"/g'  /etc/sysconfig/libvirtd  
/etc/init.d/libvirtd restart    
netstat  -tulnp  | grep  16666

方法二:
 libvirtd  --listen  -d  或者   libvirtd -l -d

12.配置vnc监听地址,默认为127.0.0.1,更改为0.0.0.0,这样做的目的是在创建vm虚拟机时.就不需要指定--vnclisten 0.0.0.0

sed -i 's/#vnc_listen = "0.0.0.0"/vnc_listen = "0.0.0.0"/g'  /etc/libvirt/qemu.conf  
cat  /etc/libvirt/qemu.conf  | more

13.查看kvm模块是否正常加载

lsmod  | grep  kvm

14.查看版本

virsh -version
/usr/libexec/qemu-kvm  -version

15.关闭NetworkManager网络管理服务器

chkconfig  NetworkManager off
service  NetworkManager  stop
service  NetworkManager  status

16.配置br0网卡

cd  /etc/sysconfig/network-scripts/
cp  ifcfg-eth0   ifcfg-br0

eth0配置如下:

[root@kvm-node154 network-scripts]# cat  ifcfg-eth0 
DEVICE=eth0
HWADDR=00:0C:29:57:87:7F
TYPE=Ethernet
BRIDGE=br0
UUID=14fbc589-a209-4b37-acd5-60ef51214cdb
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none

br0配置如下:

[root@kvm-node154 network-scripts]# cat  ifcfg-br0 
DEVICE=br0
HWADDR=00:0C:29:57:87:7F
TYPE=Bridge
UUID=14fbc589-a209-4b37-acd5-60ef51214cdb
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
IPADDR=192.168.1.154
NETMASK=255.255.255.0
GATEWAY=192.168.1.1


17.查看网桥

brctl show





     二:kvm创建虚拟机



1.使用virt-install工具创建虚拟机,它会调用qemu-kvm

具体参数:

--name   虚拟机名称
--ram    分配内存,取值值不带单位,直接为数值,默认单位MB
--vcpus  分配的cpu个数,不能查过物理服务器总的核心数
--disk   虚拟机的磁盘位置,后面接 path=dir
path:磁盘镜像存储的位置.
device:设备类型  ,有cdrom ,disk,floppy
bus:磁盘类型:ide,scsi,usb,virtio,xen
perms:访问权限:rw,ro,sh(共享可读写),默认rw
size:磁盘大小,单位GB
format:磁盘格式.raw,qcow2,vmdk等
sparse:磁盘使用稀疏格式,即不立即分配指定大小的空间
--network  使用桥接模式
bridge:连接到指定桥接网卡
model:网卡设备型号.e1000,rtl8139,virtio
mac:固定mac地址.无论何种方式.对于kvm来说,前三段必须是54:52:00
--cdrom  指定iso镜像的位置
--vnc    指定启用vnc服务
--vncport vnc服务的开放端口,供远程连接使用
--vnclisten  默认为127.0.0.1,只运行自身访问自身,一般改为0.0.0.0
--os-type   Linux或者Windows或者unix
--os-variant 系统型号.包括 win7|vista|winxp64|winxp|win2k8|win2k3|freebsd8|generic|debiansqueeze|debianlenny|fedora16|fedora15|fedora14|rhel6|rhel5.4|rhel4|sles11|sles10|
--accelerate  加速

2.上传iso镜像,到指定目录,创建镜像存储位置

mkdir  /iso
mkdir  /vm



3.创建qcow2的格式的磁盘,必须在创建虚拟机之前先创建磁盘镜像

qemu-img create  -f  qcow2  /vm/api1-qcow2.img  8G 
virt-install --name api1 --ram 512 --vcpus 1 --disk  /vm/api1-qcow2.img,size=8,device=disk,format=qcow2,bus=virtio,perms=rw  --network bridge=br0,model=virtio --cdrom /iso/CentOS-6.6-x86_64-minimal.iso --vnc  --vncport 5911   --vnclisten=0.0.0.0   --os-type=linux  --os-variant=rhel6  --accelerate

4.Tigervnc连接

IP:5911  ,安装过程,完成安装.重启guestOS,重启完成之后,必须需要手动用virsh start  Name命令手动去打开guestOS客户机.


5.创建raw(虚拟机默认磁盘格式)的磁盘.可以直接创建,不需要先创建磁盘镜像.

virt-install --name  api2  --ram512 --vcpus 1  --disk   /vm/api2-raw.img,size=8,device=disk,format=raw,bus=virtio,perms=rw  --network bridge=br0,model=virtio  --cdrom  /iso/CentOS-6.6-x86_64-minimal.iso --vnc  --vncport=5912 --vnclisten=0.0.0.0 --os-tyep=linux --os-variant=rhel6 --acclerate

6.Tigervnc连接

IP:5912  ,安装过程,完成安装.重启guestOS.必须需要手动用virsh start  Name命令手动去打开guestOS客户机.


7.虚拟机安装之后,不能使用virsh shutdown Name,需要在虚拟机中安装acpid服务

  tigervnc登录到虚拟机,配置eth0的ip地址,确保可以访问外网,然后

yum  install  -y  acpid   
chkconfig  acpid  on     
chkconfig   --list  | grep  acpid
reboot

8.虚拟机系统安装之后,配置虚拟机控制台登录配置,可以通过virsh  console  Name登录

  (1)

echo  "ttyS0"  >>  /etc/securetty  &&  cat  /etc/securetty

  (2)vi  /etc/grub.conf

rhgb quiet后面添加:console=ttyS0

   (3)

echo "SO:12345:respawn:/sbin/agetty ttyS0 115200"  >> /etc/inittab   
cat  /etc/inittab

   (4)

virsh   shutdown  Name    
sleep 10   &&  virsh start  Name

  (5)

virsh  console   Name  注意虚拟机启动后,隔10s中才有正常启动信息显示.不必紧张.


9.配置VM时间

cp  /usr/share/zoneinfo/Asia/Shanghai  /etc/localtime
vi  /etc/libvirt/qemu/api2.xml
<clock offset='utc'>  ===> <clock offset='localtime'>
yum  install  ntpdate  -y     
ntpdate  cn.pool.ntp.org  
echo  "*/5 * * * *  root   ntpdate  cn.pool.ntp.org"  >> /etc/crontab
service  crond  restart



三:kvm虚拟机本机克隆

必须需要说明的是.源客户机的状态必须处于关机或者暂停状态.本机克隆使用virt-clone命令进行.会自动生成镜像文件和XML配置文件.


1.本机克隆案例:

物理机IP地址:192.168.1.154
虚拟机名称: api1
虚拟机镜像: /vm/api1-qcow2.img


(1)停止api1
virsh  shutdown  api1      &&  sleep   30   &&  exit 0
(2)开始克隆:
virt-clone  -o  api1 -n  api2 -f  /vm/api2-qcow2.img
(3)启动api2,修改主机名和IP地址
virsh  console   api2
vi  /etc/sysconfig/network
HOSTNAME=vm-api2
GATEWAY=192.168.1.1

(4)网卡报错:

Bringing up interface eth0:  Device eth0 does not seem to be present, delaying initialization.
[FAILED]

(5)解决,编辑70-persistent-net.rules

cd /etc/udev/rules.d/   &&   vi 70-persisten-net.rules

将eth0的网卡的信息注释,将eth1的网卡name改为eth0.先记录下eth1的MAC信息.然后将eth1的mac地址粘贴到ifcfg-eth0中的mac地址.

如图:

wKiom1aTcEOBMa8yAARoJ5MpkLo224.jpg

wKioL1aTcHOBV_mxAAI84HeDbik828.jpg


(5)编辑api2的XML配置文件

virsh  edit   api2.xml
更改VNC的端口
port="5912"




四:kvm虚拟机磁盘快照

注意:

只有磁盘格式为qcow2的磁盘才支持磁盘快照和磁盘动态扩展.

1.基本命令

snapshot-list        Domain
snapshot-create-as   Domain  shotName
snapshot-revert   Domain    shotName
snapshot-delete  Domain   shotName


2.注意

创建快照必须保证虚拟机是开启的状态.恢复快照必须保证虚拟机是关机状态.


3.例子

Domain Name:   api2
shutdown  api2
snapshot-create-as   api2    api2_httpd
snapshot-list  api2
snapshot-revert   api2  api2_httpd
snapshot_delete  api2  api2_httpd



你可能感兴趣的:(kvm,文档)