基于Linux命令行KVM虚拟机的安装配置与基本使用
https://alex0227.github.io//06/06/%E5%9F%BA%E4%BA%8ELinux%E5%91%BD%E4%BB%A4%E8%A1%8CKVM%E8%99%9A%E6%8B%9F%E6%9C%BA%E7%9A%84%E5%AE%89%E8%A3%85%E9%85%8D%E7%BD%AE%E4%B8%8E%E5%9F%BA%E6%9C%AC%E4%BD%BF%E7%94%A8//06/06LinuxKVM背景
由于生产环境的服务器并不会安装桌面环境,简单操作的图形化安装也不适合批量部署安装。因此,我还是更倾向于在命令下安装配置KVM虚拟机。结合了一些资料和个人使用的状况,我大致列出了一些基本和常用的使用方法。
安装配置
一、环境介绍
操作系统:centos6.6 内核版本:2.6 IP地址:172.16.57.24
二、检查CPU
和 Xen 不同,KVM 需要有 CPU 的支持(Intel VT 或 AMD SVM),在安装 KVM 之前检查一下 CPU 是否提供了虚拟技术的支持
egrep 'vmx|svm' /proc/cpuinfo
三、安装KVM
这里安装一些虚拟化的组件yum -y install kvm python-virtinst libvirt bridge-utils virt-manager qemu-kvm-tools virt-viewer virt-v2v libguestfs-tools-c
对kvm进行如下如下配置:
vim /etc/libvirt/libvirtd.conf
这里主要是tcp连接的设置 末尾添加如下:
listen_tls = 0listen_tcp = 1tcp_port = "16509"listen_addr = "172.16.57.24"unix_sock_ro_perms = "0777"unix_sock_rw_perms = "0770"auth_tcp = "none"max_clients = 1024min_workers = 100max_workers = 200max_requests = 20max_client_requests = 50vim qemu.conf
这里主要是对vnc的设置,一会儿通过vnc-viewer连接来进行安装 末尾添加vnc_listen = 0.0.0.0 vnc_password = "bigdata" #vnc连接密码 remote_display_port_min = 5900 #vnc最小端口 remote_display_port_max = 65535 #vnc最大端口
确认一下是否 kvm 安装成功:
/etc/init.d/libvirtd restart
查看是否启动:
ps -ef | grep
查看kvm模块是否正常加载:
lsmod |grep kvm
四、配置网桥连接
配置网桥br0vim /etc/sysconfig/network-scripts/ifcfg-br0DEVICE=br0TYPE=BridgeONBOOT=yesNM_CONTROLLED=yesBOOTPROTO=staticIPADDR=172.16.57.24NETMASK=255.255.255.0GATEWAY=172.16.57.1DNS1=202.96.209.133vim /etc/sysconfig/network-scripts/ifcfg-em1DEVICE=em1TYPE=EthernetONBOOT=yesBRIDGE=br0NM_CONTROLLED=yes
重启网络
/etc/init.d/network restart
查看网络连接
brctl show
如果配置成功,会有以下输出:
bridge namebridge idSTP enabledinterfacesbr08000.14187745822enoem1vnet0vnet1vnet2vnet3vnet4vnet5vnet6virbr08000.5254005fcc0byesvirbr0-nic
检查ip转发是否开启
cat /etc/sysctl.conf |grep ip_forwardnet.ipv4.ip_forward = 1
如果没有开启:
vim /etc/sysctl.conf
修改
net.ipv4.ip_forward = 1/sbin/sysctl -p
五、安装虚拟机
virt-install --name=tomcat_01 --ram 8192 --vcpus=2 /--disk path=/var/lib/libvirt/images/tomcat_01.img,size=20,format=raw,bus=virtio /--cdrom /var/iso/CentOS-6.7-x86_64-minimal.iso --network bridge=br0,model=virtio /--vnc --accelerate --force --autostart
这里解释一下主要的几个参数含义:
–name 给虚拟机起个名字
–ram 分配给虚拟机的内存,单位MB
–vcpus 分配给虚拟机的cpu个数
–cdrom 指定安装文件的全路径
–disk 指定虚拟机img文件路径,如果虚拟机使用lvm分区,这里就指向到lvm的分区就行
size 虚拟机文件大小,单位GB
bus 虚拟机磁盘使用的总线类型,为了使虚拟机达到好的性能,这里使用virtio
cache 虚拟机磁盘的cache类型
–network bridge 指定桥接网卡
model 网卡模式,这里也是使用性能更好的virtio
–graphics图形参数
这里我安装的虚拟机名字为tomcat_01,接下来查看其vnc端口:
ps aux | grep qemu | grep tomcat_01
当时我们设置vnc端口最小为5900,那么这里指的就是5902这个端口。 接下来通过在windows下使用vnc-viewer来连接172.16.57.24:5902,并输入设置的密码,即可进行安装。
常用操作
宿主机管理虚拟机 对虚拟机进行开关等管理,需要在虚拟机上安装acpid的服务,并启动它。克隆虚拟机 一般制作一个常用的虚拟机模板,下次安装可以直接来克隆这个模板。virt-clone --connect qemu:///system --original=tomcat_01 --name=tomcat_02 --file=//var/lib/libvirt/images/tomcat_02.img--original克隆的虚拟机对象--name 克隆的新虚拟机名称
添加磁盘 一般虚拟机的磁盘结构为系统盘加数据盘,当系统发生故障时,可以重新建一个系统盘,而数据盘不会丢失。 添加磁盘操作:
cd /var/lib/libvirt/images/ 进入磁盘存放目录qemu-img create -f raw test_add.img 100G 创建一块100G的磁盘virsh attach-disk tomcat_01 /var/lib/libvirt/images/test_add.img vdb --cache none 动态添加磁盘
这种方法是动态添加磁盘,而xml配置文件并没有发生变化,为了防止下次启动添加的磁盘失效,进行如下操作:
virsh dumpxml tomcat_01 > tomcat_01.xml 将最新的虚拟机配置重定向到其配置文件中virsh define tomcat_01.xml
这样,新增的磁盘就不会丢了。
virsh命令的一些操作
Autostart 自动开始一个域
Create 从一个 XML 文件创建一个域
Define 从一个 XML 文件定义(但不开始)一个域
edit 编辑某个域的 XML 配置
shutdown 关闭一个域
start 开始一个(以前定义的)非活跃的域
reboot 重新启动一个域
suspend 挂起一个域 resume 重新恢复一个域
vncdisplay vnc 显示