8、KVM常用管理命令
8.1创建虚拟机
[root@localhost ~]# virt-install --name=centos1 \ #生成一个虚拟机
--ram 1024 \ #分配内存大小(默认大小MB)
--vcpus=1 \ #分配CPU核心数
--disk path=/root/centos1.img \ #指定虚拟机镜像(size单位为GB)
--accelerate \ #加速
--cdrom /root/CentOS-6.5-x86_64-bin-DVD1.iso \ # 指定安装镜像iso
--graphics vnc,password=123456,port=5921 \ # 指定vnc的连接密码和监听端口
--network bridge=br0 \ #指定网络
--autostart \ ##自动开启
8.2 virsh的其他操作
[root@localhost /]# virsh start centos1 #启动虚拟机
[root@localhost /]# virt-viewer centos1 #如果有图形界面的话,可以进入虚拟机的界面
[root@localhost ~]# virsh shutdown centos1 #关闭虚拟机
注意:shutdown使用发送acpid指令来控制虚拟机的电源,而KVM虚拟机安装Linux系统时默认没有安装acpid服务,反以导致不能关闭虚拟机,需要安装acpid。
查看acpid服务是否开启:/etc/init.d/acpid status
启动acpid服务:/etc/init.d/acpid start
[root@localhost /]# virsh reboot centos1 #重启虚拟机
[root@localhost /]# virsh suspend centos1 #暂停虚拟机
[root@localhost /]# virsh resume centos1 #恢复虚拟机
[root@localhost /]# virsh autostart centos1 #自动加载虚拟机
[root@localhost /]# virsh undefine centos1 #删除一个虚拟机
virsh参数说明如下:
autostart自动加载指定的一个虚拟机
connect重新连接到hypervisor
console连接到客户会话
create从一个SML文件创建一个虚拟机
start开始一个非活跃的虚拟机
destroy删除一个虚拟机
define从一个XML文件定义一个虚拟机
domid 把一个虚拟机名或UUID转换为ID
domuuid把一个郁闷或ID转换为UUID
dominfo查看虚拟机信息
domstate查看虚拟机状态
domblkstat获取虚拟机设备快状态
domifstat获取虚拟机网络接口状态
dumpxmlXML中的虚拟机信息
edit编辑某个虚拟机的XML文件
list列出虚拟机
migrate将虚拟机迁移到另一台主机
quit退出非交互式终端
reboot重新启动一个虚拟机
resume重新恢复一个虚拟机
save把一个虚拟机的状态保存到一个文件
dump把一个虚拟机的内核dump到一个文件中以方便分析
shutdown关闭一个虚拟机
setmem改变内存的分配
setmaxmem改变最大内存限制值
suspend挂起一个虚拟机
vcpuinfo虚拟机的cpu信息
version显示virsh版本
8.3 virt-clone克隆
当安装完一台后,如何快速的虚拟出第二台呢?
这里就可以采用克隆这种方式
(1)通过命令:
virt-clone -o devEnv-01.vm.itcast -n devEnv-02.vm.itcast -f /home/kvm/centos02.img
参数说明:
-o :指定源虚拟机
-n :命名新克隆的虚拟机
-f :指定新克隆虚拟机的位置
(2)克隆完成后,在生成硬盘映像文件的同时,也会克隆虚拟机的配置文件
(3) 修改克隆出来的心虚拟机的配置文件
通过命令:virsh edit devEnv-02.vm.itcast
修改此处的vnc监控的端口号,避免与克隆前的虚拟机端口一样,而出现端口地址被占用。
(4)启动克隆出来的新的虚拟机devEnv-02.vm.itcast
通过命令: virsh start devEnv-02.vm.itcast
(5) 通过用VNC Viewer来连接该虚拟机
由于是克隆出来的,跟之前我们使用VMware克隆效果是一样的,需要进行相应的修改。
a:修改对应的主机名
进入/etc/sysconfig/network进行相应的修改
b:因为克隆改变新虚拟机的MAC地址,故eth0无法启动,新的虚拟机后网卡变成了 eth1
进入/etc/udev/rules.d/70-persistent-net.rules文件删除之前的eth0这个网卡记录,保留eth1。
进入到/etc/sysconfig/network-scripts/,执行命令mv ifcfg-eth0 ifcfg-eth1 重命名
vi ifcfg-eth1 修改配置
c: 重启网卡,通过命令service network restart
8.4 libguestfs-tools安装和使用
libguestfs-tools是虚拟机一个管理包,很有用的工具。
(1)安装
yum -y install libguestfs-tools
(2)使用
查看虚拟机的分区情况
[root@node-1 home]# virt-filesystems -d devEnv-01.vm.itcast
[root@node-1 home]# virt-list-partitions /home/kvm/devEnv-01.vm.itcast.img
[root@node-1 home]# virt-df /home/kvm/devEnv-01.vm.itcast.img
8.5 kvm虚拟机参数修改
(1) 修改kvm虚拟机的内存大小
[root@node-1 home]# virsh edit devEnv-01.vm.itcast
注意不可直接修改devEnv-01.vm.itcast.xml 文件
查看内存:free
(2)修改kvm虚拟机的cpu核数大小
[root@node-1 home]# virsh edit devEnv-01.vm.itcast
查看cpu核数: cat /proc/cpuinfo |grep "processor"|sort -u|wc -l
注意:修改完成之后,都要重启虚拟机
先关闭:virsh shutdown devEnv-01.vm.itcast
再启动:virsh start devEnv-01.vm.itcast
其他参数修改相同。