[root@kvm ~]# runlevel
http://mirrors.aliyun.com/
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
[root@kvm ~]# cd /etc/yum.repos.d/
[root@kvm yum.repos.d]# vi yum.sh
mv /etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel.repo.backup
mv /etc/yum.repos.d/epel-testing.repo /etc/yum.repos.d/epel-testing.repo.backup
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
[root@kvm yum.repos.d]# sh yum.sh
[root@kvm yum.repos.d]# yum clean all
[root@kvm yum.repos.d]# yum makecache
[root@kvm ~]# yum install qemu-kvm
qemu/模拟器,具备模拟加速功能
libvirt:操作和管理KVM虚机的虚拟化 API,使用 C 语言编写,可以
由 Python,Ruby, Perl, PHP, Java 等语言调用。可以操作包括 KVM,
vmware,XEN,Hyper-v, LXC 等 Hypervisor。
• Virsh:基于 libvirt 的 命令行工具 (CLI)
• Virt-Manager:基于 libvirt 的 GUI 工具
[root@kvm ~]# yum -y install virt-manager libvirt libvirt-python python-virtinst bridge-utils
yum -y install httpd(安装Apache服务器) createrepo(创建私有云窗口的软件) reposync(创建同步的软件)
[root@kvm ~]# yum -y install httpd createrepo reposync
[root@kvm ~]# netstat -natp
[root@kvm html]# yum repolist
[root@kvm yum.repos.d]# yum -y install yum-utils
yum-utils中有个命令是同步命令reposync 用来同步远程的yum repository
[root@kvm yum.repos.d]# reposync --help
-d 来删除本地老旧, yum 源已经不存的安装包
[root@kvm html]# reposync --repoid=base
[root@kvm html]# reposync --repoid=epel
[root@kvm ~]# service httpd start
http://192.168.230.88/base/
reposync自动同步想要的yum源到指定的路径,因为每次同步后,内容可能有所改变,所以需要重新执行createrepo命令重新创建YUM仓库
[root@kvm ~]# createrepo --help
[root@kvm ~]# cretaerepo --update /var/www/html/base/
[root@kvm yum.repos.d]# vi /etc/yum.repos.d/CentOS-Base.repo
http://192.168.230.88/base/
kvm嵌入到了Linux内核中去
[root@kvm ~]# lsmod | grep kvm
如果kvm没有嵌入到Linux内核中
可以通过命令强制嵌入到Linux内核中
[root@kvm ~]# modprobe kvm
[root@kvm ~]# modprobe kvm-intel
[root@kvm kvmtest]# qemu-img create -f qcow2 /kvmtest/centos-6.5.qcow2 10G
[root@kvm kvmtest]# yum -y install virt-install
[root@kvm kvmtest]# yum -y remove virt-install
[root@kvm kvmtest]# virt-install --virt-type kvm --name centos-6.6 --ram 1024 \
> --vcpus 1 \
> --cdrom=/kvmtest/CentOS-6.6-x86_64-minimal.iso \
> --disk /kvmtest/centos-6.6.qcow2,format=qcow2 \
> --network network=default \
> --graphics vnc,listen=0.0.0.0 --noautoconsole \
> --os-type=linux --os-variant=rhel6
ERROR Failed to connect socket to '/var/run/libvirt/libvirt-sock': No such file or directory
出现错误
[root@kvm kvmtest]# service libvirtd start
Starting libvirtd daemon: [ OK ]
[root@kvm kvmtest]# service libvirtd status
libvirtd (pid 1951) is running...
[root@kvm kvmtest]# chkconfig libvirtd on
[root@kvm kvmtest]# virt-install --virt-type kvm --name centos-6.5 --ram 1024 \
> --vcpus 1 \
> --cdrom=/kvmtest/CentOS-6.5-x86_64-minimal.iso \
> --disk /kvmtest/centos-6.5.qcow2,format=qcow2 \
> --network network=default \
> --graphics vnc,listen=0.0.0.0 --noautoconsole \
> --os-type=linux --os-variant=rhel6
virt-install --virt-type kvm --name centos-6.5 --ram 1024 \
--vcpus 1 \
--cdrom=/kvmtest/CentOS-6.5-x86_64-minimal.iso \
--disk /kvmtest/centos-6.5.qcow2,format=qcow2 \
--network network=default \
--graphics vnc,listen=0.0.0.0 --noautoconsole \
--os-type=linux --os-variant=rhel6
[root@kvm kvmtest]# virsh
virsh # start centos-6.5
virsh # list --all
发现多了一个桥接设备
[root@kvm kvmtest]# brctl show
发现无法用键盘操作的原因是中文输入法对这个工具产生了干扰
[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
[root@localhost ~]# service network restart
[root@localhost ~]# ifconfig
• virsh list # 显示本地活动虚拟机
• virsh start openSuse # 启动名字为ubuntu的非活动虚拟机
• virsh create ubuntu.xml # 创建虚拟机(创建后,虚拟机立即执行,成为活
动主机)
• virsh suspend openSuse # 暂停虚拟机
• virsh resume ubuntu # 启动暂停的虚拟机
• virsh shutdown ubuntu # 正常关闭虚拟机
• virsh destroy ubuntu # 强制关闭虚拟机
• virsh dominfo openSuse # 显示虚拟机的基本信息
• virsh dumpxml openSuse # 显示虚拟机的当前配置文件
• virsh setmem ubuntu 51200 # 给不活动虚拟机设置内存大小
• virsh setvcpus ubuntu 4 # 给不活动虚拟机设置cpu个数
• virsh edit ubuntu # 编辑配置文件(一般用在刚定义完VM)
[root@kvm kvmtest]# cd /etc/libvirt/
[root@kvm libvirt]# ll
total 48
-rw-r--r-- 1 root root 518 May 11 2016 libvirt.conf
-rw-r--r-- 1 root root 12963 May 11 2016 libvirtd.conf
-rw-r--r-- 1 root root 1176 May 11 2016 lxc.conf
drwx------ 2 root root 4096 Jan 14 09:38 nwfilter
drwx------ 3 root root 4096 Jan 14 16:55 qemu
-rw-r--r-- 1 root root 14998 May 11 2016 qemu.conf
virsh # vcpuinfo 2
virsh # edit 2
一个 KVM 虚机即一个 Linux qemu-kvm 进程,与其他Linux 进程一样被Linux 进程调度器调度。
• KVM虚机包括虚拟内存、虚拟CPU和虚机I/O设备,其中,内存和CPU的虚拟化由KVM内核模块负责实现,I/O 设备的虚拟化由QEMU负责实现。
• KVM户机系统的内存是qumu-kvm进程的地址空间的一部分。
• KVM虚机的vCPU作为线程运行在qemu-kvm进程的上下文中。
[root@kvm libvirt]# numactl --hardware
要通过xshell对kvm虚拟机进行管理的话
要在虚拟机上安装acpid
[root@localhost ~]# yum install acpid
[root@localhost ~]# service acpid start
[root@localhost ~]# chkconfig acpid on
virsh # shutdown 2
virsh # list
Id Name State
----------------------------------------------------
virsh # list --all
Id Name State
----------------------------------------------------
- centos-6.5 shut off
virsh # vcpuinfo centos-6.5
[root@kvm ~]# iptables -t nat -S