CLOUD:虚拟化,virsh管理

虚拟化主要厂商及产品

系列PC/服务器版代表
VMwareVMware Workstation、vSphere
MicrosoftVirtualPC、Hyper-V
RedHatKVM、RHEV
CitrixXen
OracleOracle VM VirtualBox

kvm

kvm

  • KVM是linux内核的模块,需要CPU的支持,采用硬件辅助虚拟化技术Intel-VT,AMD-V,内存的相关如Intel的EPT和AMD的RVI技术

QEMU

  • QEMU是一个虚拟化的仿真工具,通过ioctl与内核kvm交互完成对硬件的虚拟化支持

LIBVIRTD

  • Libvirt是一个对虚拟化管理的接口和工具,提供用户端程序virsh,virt-install,virt-manager,virt-view与用户交互

kvm必备软件

  • qemu-kvm
    – 为kvm提供底层仿真支持
  • libvirt-daemon
    – libvirtd守护进程,管理虚拟机
  • libvirt-client
    – 用户端软件,提供客户端管理命令
  • libvirt-daemon-driver-qemu
    – libvirtd连接qemu的驱动

可选功能

– virt-install #系统安装工具
– virt-manager #图形管理工具
– virt-v2v #虚拟机迁移工具
– virt-p2v #物理机迁移工具

KVM虚拟机的组成

  • 虚拟机的组成
    – 内核虚拟化模块(KVM)
    – 系统设备仿真(QEMU)
    – 虚拟机管理程序(LIBVIRT)

  • 一个XML文件(虚拟机配置声明文件)
    – 位置/etc/libvirt/qemu/

  • 一个磁盘镜像文件(虚拟机的硬盘)
    – 位置/var/lib/libvirt/images/

管理KVM平台

  • 格式:virsh 控制指令 [虚拟机名称] [参数]

虚拟机管理

virsh list #列出当前正在运行的虚拟机
virsh list --all #列出当前所有的虚拟机
virsh start|shutdown|reboot 虚拟机名 #虚拟机启动,停止,重启
virsh destroy 虚拟机名 #强制停止虚拟机
virsh define xml文件  #根据xml文件创建虚拟机
virsh undefine  虚拟机名 #删除虚拟机
#把xml文件删除了,但是镜像文件没有删除
virsh console 虚拟机名 #简介虚拟机的console
virsh edit  虚拟机名  #修改虚拟机的配置
virsh autostart 虚拟机名 #设置虚拟机自启动
virsh autostart --disable 虚拟机名 #取消虚拟机自启动
virsh domiflist  node1 #查看虚拟机网卡信息
virsh domblklist  node1 #查看虚拟机硬盘信息
virsh dominfo  node1  #查看虚拟机详细信息

虚拟网络管理

virsh net-list [--all] #列出虚拟网络
virsh net-start 网卡名 #启动
virsh net-destroy 网卡名 #强制停止虚拟交换机
virsh net-define  xml文件 #根据xml文件创建虚拟网络
virsh net-undine 网卡名  #删除一个虚拟网络设备
virsh net-edit 网卡名 #修改虚拟交换机的配置
virsh net-autostart  网卡名 #自启动

qemu-img基本操作管理

常见镜像类型

特点/类型RAWQCOW2
KVM默认
I/O效率较高
占用空间
压缩不支持支持
后端盘复用不支持支持
快照不支持支持

qemu-img 命令

格式:qemu-img 命令 参数 快文件名称 大小

  • 创建一个新的镜像盘文件
qemu-img create   -f qcow2 disk.img 50G  #qcow2为创建的格式
Formatting 'disk.img', fmt=qcow2 size=53687091200 encryption=off cluster_size=65536 lazy_refcounts=off
  • 使用后端模板文件创建一个新的镜像盘文件
    备注:-b使用后端模板文件
qemu-img create -b disk.img -f qcow2 disk1.img
Formatting 'disk1.img', fmt=qcow2 size=53687091200 backing_file='disk.img' encryption=off cluster_size=65536 lazy_refcounts=off
  • 使用后端模板文件创建一个16G的镜像盘文件
qemu-img create -b disk.img -f qcow2 disk2.img  16G
Formatting 'disk1.img', fmt=qcow2 size=53687091200 backing_file='disk.img' encryption=off cluster_size=65536 lazy_refcounts=off

查看镜像文件的信息

qemu-img  info disk.img 
qemu-img  info disk1.img 
qemu-img  info disk2.img 

创建虚拟机

  • 创建虚拟机
    cd /var/lib/libvirt/images/
    qemu-img create -f qcow2 -b node.qcow2 node1.img 20G
  • 修改xml文件
    改名,指定镜像文件
  • 定义xml文件
    virsh define /etc/libvirt/qemu/node1.xml
  • 开启虚拟机
    virsh start node1

脚本

#!/bin/bash
while (($#)) 
do
	cd /var/lib/libvirt/images
	qemu-img create -f qcow2 -b node.qcow2 	${1}.img 20G
	cd /etc/libvirt/qemu
	sed "s/node/${1}/" 	/etc/libvirt/qemu/node.xml > $1.xml
	virsh define /etc/libvirt/qemu/$1.xml
	shift
done

网卡配置文件说明

  • /etc/sysconfig/network-scripts/ifcfg-eth0
    – DEVICE=eth0 #驱动名称,与ifconfig看到的名称一致
    – BOOTPROTO=none #协议(dhcp|static|none(不建议))
    – ONBOOT=yes #开机启动
    – IPADDR=192.168.4.11 #IP地址
    – NM_CONTROLLED=no #不接受NetworkManager控制
    – TYPE=Ethernet #类型
    – GATEWAY=192.168.4.254 #默认网关

virsh扩容磁盘

  • 扩容思路
    – 首先扩硬盘
    – 其次扩容分区
    – 再扩容文件系统

扩容硬盘

virsh domblklist abc #查看虚拟机硬盘信息
virsh blockresize --path /var/lib/libvirt/images/abc.img --size 50G abc

扩容分区

LANG=C #语言必须设置为英文
growpart /dev/vda 1 #扩容第一个分区

扩容文件系统

blkid
xfs_growfs /dev/vda1
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值