kvm应用

kvm

  1. 安装kvm环境

yum -y install qemu-kvm libvirt python-virtinst bridge-utils policycoreutils-python lrzsz expect

mkdir /home/vhosts/ -p

semanage fcontext -a -t virt_image_t /home/vhosts 设定selinux安全上下文目录

注释:如果没有semanage,那么安装policycoreutils-python

iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 5900:5920 -j ACCEPT

iptables -A INPUT -p udp --dport 161 -j ACCEPT

service iptables save

service iptables restart

sed -i ‘s/192.168.122/10.1.0/g’ /etc/libvirt/qemu/networks/default.xml

service libvirtd start

chkconfig libvirtd on

virsh pool-define-as vmpool --type dir --target /home/vhosts 定义池

virsh pool-start vmpool 开始池

virsh pool-autostart vmpool 自启动

yum install net-snmp -y

sed -i ’s/‘default public'/'0.0.0.0 zhxgsnmp'/g‘ /etc/snmp/snmpd.conf

sed -i '54 aview systemview included .1' /etc/snmp/snmpd.conf

chkconfig snmpd on

service snmpd start

2、或者是多行版本:

yum update -y;\
yum -y install qemu-kvm libvirt python-virtinst bridge-utils policycoreutils-python;\
mkdir /home/vhosts;\
semanage fcontext -a -t virt_image_t /home/vhosts; #添加新规则
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 5900:5920 -j ACCEPT;\
iptables -A INPUT -p udp --dport 161 -j ACCEPT;
service iptables save;\
service iptables restart;
sed -i s/192.168.122/10.1.0/g /etc/libvirt/qemu/networks/default.xml;
chkconfig libvirtd on;
service libvirtd start;\
virsh pool-define-as vmpool --type dir --target /home/vhosts; #创建存储池vmpool,--type dir类型为目录,--target目标 /home/vhosts

virsh pool-start vmpool;\ #启动存储池
virsh pool-autostart vmpool;\
yum install net-snmp -y;\
sed -i s/'default public'/'0.0.0.0 zhxgsnmp'/g /etc/snmp/snmpd.conf;
sed -i '54 aview systemview included .1' /etc/snmp/snmpd.conf;
chkconfig snmpd on;\
service snmpd start;\
reboot

注意以上脚本有防火墙禁止icmp那样要移到最后去,然后重启iptables并重启libvirtd

chkconfig libvirtd on
service libvirtd start

  1. 基本命令

virt-install 创建新虚拟机

virsh start 虚拟机名 启动虚拟机

virsh destroy 虚拟机名 强制关机

virsh vncdisplay 虚拟机名 查看虚拟机vnc端口

virt-clone 克隆虚拟机

virsh attach-interface 添加网卡

virsh change-media 更换光驱iso文件

virsh edit 虚拟机名 编辑配置文件

  1. 新建虚拟机

(1)raw格式:速度最快,但是不能实现内部快照,而且实际占用磁盘空间需要用qemu-img info spider.img查看

virt-install --name spider --ram 4096 --vcpus=2 --disk path=/home/vhosts/spider.img,size=100 --accelerate --arch=x86_64 --os-type=linux --os-variant='rhel6' --cdrom=/home/software/CentOS-6.5-x86_64-minimal.iso --graphics vnc --network bridge=br0

size:为GB

(2)qcow2格式:速度接近raw,但支持内部快照

 qemu-img   create   -f    qcow2   /home/vhosts/虚拟机名.qcow2   100G    必须通过

qemu-img创建qcow2格式文件

chown -R qemu:qemu /home/vhosts/虚拟机名.qcow2

virt-install   --name    虚拟机名   --ram 16384   --vcpus=2   --arch=x86_64   --disk path=/home/vhosts/openstack.qcow2,size=100,format=qcow2   --os-type=linux   --os-variant='rhel6'    --accelerate    --cdrom=/home/software/CentOS-6.5-x86_64-minimal.iso    --graphic    type=vnc,port=-1,listen=0.0.0.0,password='cqmygysdss'            --network    bridge=br0,bridge=br1

注意:逗号,之后不能有空格!
-1是自动获取端口

  1. 克隆虚拟机

virt-clone -o spider -n spider1 -f /home/vhosts/spider1.qcow2

登录到新克隆虚拟机上去要删除掉:

rm -f /etc/udev/rules.d/70-persistent-net.rules

reboot

  1. 开机加载虚拟机

virsh list --autostart 查看自动加载的虚拟机

virsh autostart spider 自动加载spider

virsh autostart spider --disable 禁止加载spider

  1. raw格式转为qcow2

qemu-img convert -O qcow2 test.img test.qcow2

virsh edit scrapy

<disk type='file' device='disk'>
<driver name='qemu' type='qcow2' cache='none'/>
<source file='/home/vhosts/scrapy.qcow2'/>
<target dev='hda' bus='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/>
</disk>
注意 slot要选一个没用的

  1. 虚拟机改名

virsh destroy 虚拟机名

cd /etc/libvirt/qemu

mv 虚拟机名.xml 新虚拟机名.xml

vi 新虚拟机名.xml 修改name字段为: 新虚拟机名

virsh undefine 虚拟机名

virsh define /etc/libvirt/qemu/新虚拟机名.xml

virsh start 新的虚拟机名

  1. 删除虚拟机

virsh destroy 虚拟机名

virsh undefine 虚拟机名

rm -f /home/vhost/虚拟机名.qcow2

  1. 查看虚拟机文件所占实际空间

qemu-img info cacti.img

image: cacti.img
file format: raw
virtual size: 100G (107374182400 bytes)
disk size: 3.0G

raw格式虽然分配了100G,但是实际只占有了3G,

  1. 修改VNC绑定地址

virsh destroy centos6.5

vi /etc/libvirt/qemu/centos6.5.xml

<graphics?type='vnc'?port='5901'?autoport='no'?listen='0.0.0.0'?keymap='en-us'/>

在其中加入passwd的属性,更改为如下:

<graphics?type='vnc'?port='5901'?autoport='no'?listen='0.0.0.0'?passwd='12345678' keymap='en-us'/>
其中passwd的位置可以随意.

  1. 更换光驱ISO

virsh change-media centos6.5 hdc --source /home/software/CentOS-6.5-x86_64-minimal.iso

virsh reset centos6.5

  1. 修改bios启动顺序

virsh destroy centos6.5

vi /etc/libvirt/qemu/centos6.5.xml

<os>
<type arch='x86_64' machine='rhel6.5.0'>hvm</type>
<boot dev='cdrom'/> #光盘
<boot dev='hd'/>
</os>
添加cdrom为第一启动

virsh define /etc/libvirt/qemu/centos6.5.xml

virsh start centos6.5

  1. 设置网卡

1) 桥接方式

需要对网卡进行设置一下 创建一个文件 /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE="br0"
ONBOOT=yes
TYPE=Bridge
BOOTPROTO=static
IPADDR=110.249.208.110
NETMASK=255.255.255.0
GATEWAY=10.1.199.1
GATEWAY=110.249.208.126
DNS1=202.106.0.20

修改 /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
BOOTPROTO=none
ONBOOT=yes
BRIDGE=br0
DNS1=202.106.0.20
DNS=8.8.8.8
注:DNS必须配置在eth0中

  1. 存储池

创建存储池
基于目录的:#virsh pool-define-as vmpool --type dir --target /home/vhosts

注意:如果用virsh pool-create-as --name vmpool --type dir --target /home/vhosts,创建出来是临时的没有生成xml文件,重启后会失效

基于文件系统
#virsh pool-create-as --name vmware_pool --type fs --source-dev /dev/vg_target/LogVol02 --source-format ext4 --target /virhost/vmware

查看存储池
#virsh pool-info vmpool

#virsh pool-list --all

启动存储池
#virsh pool-start vmpool
#virsh pool-autostart vmpool

销毁和删除存储池
#virsh pool-destroy vmpool
#virsh pool-undefine vmpool

创建存储卷
#virsh vol-create-as --pool vmware_pool --name node6.img --capacity 10G --allocation 1G --format qcow2

创建虚拟机
#virt-install --connect qemu:///system --name openstack --ram 16384 --vcpus=2 --arch=x86_64 --disk path=/home/vhosts/openstack.qcow2,size=200,format=qcow2 --os-type=linux --os-variant='rhel6' --accelerate --cdrom=/home/software/CentOS-6.5-x86_64-minimal.iso --graphic type=vnc,port=5904,listen=0.0.0.0,password='cqmygysdss' --network bridge=br0,bridge=br1

创建快照
#virsh snapshot-create-as openstack clean

查看快照
#virsh snapshot-list openstack
#virsh snapshot-info openstack clean

恢复到快照
#virsh snapshot-revert openstack clean

删除快照
#virsh snapshot-delete openstack clean

  1. 电源管理模块

虚拟机上:yum install acpid -y

ACPI(全称 Advanced Configuration and Power Interface)服务是电源管理接口。建议所有的笔记本用户开启它。一些服务器可能不需要 acpi。支持的通用操作有:“电源开关“,”电池监视“,”笔记本 Lid 开关“,“笔记本显示屏亮度“,“休眠”, “挂机”,等等。

  1. 增加CPU

#virsh vcpuinfo scrapy 查看CPU配置信息

#virsh setvcpus scrapy 4 --maximum --config 配置最大CPU数

#virsh shutdown scrapy 先关闭guest,当前不支持热插拔CPU
#virsh setvcpus scrapy 4 --start 设置当前的CPU数

  1. 增加网卡

添加一块桥接网卡

virsh attach-interface cacti bridge br1 --config

--config表示写入到xml中,如果不写,virsh destroy cacti之后,此网卡就没了
#virsh reset cacti ch

增加NAT网卡
#virsh attach-interface mysql network default --config

  1. 常见问题

1) error: Unable to read from monitor: Connection reset by peer #无法读取显示器:连接复位同行
#virsh managedsave-remove scrapy0005
#virsh start scrapy0005

2) error: unknown OS type hvm #未知的操作系统类型

qemu要放到/etc/bin目录下

3) 检查是否CPU开启虚拟化

#grep?-E?-o?'vmx|svm'?/proc/cpuinfo

4) error: Refusing to undefine while domain managed save image exists #拒绝未定义在域管理保存图像存在

解决办法:virsh undefine $domain --managed-save

转载于:https://blog.51cto.com/niming2008/2067742

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值