天天看点

KVM命令安装虚拟机与virt管理虚拟机

KVM命令安装虚拟机

    • 命令安装虚拟机
    • VNC安装
    • virsh命令使用

命令安装虚拟机

使用qemu-img创建磁盘文件

qemu-img  create -f qcow2 /kvm-vm/vmtest1.qcow2  10G
           

通过qemu-img info 可以查看磁盘情况

qemu-img info /kvm-vm/vmtest1.qcow2
           

通过文件管理可以直接查看、修改、复制虚拟机的内部文件。例如,当系统因为配置文件无法启动时,可以直接修改虚拟机持镜像zlib磁盘压缩AES加密等。要使用镜像功能,磁盘格式必须为qcow2。raw格式的话, 速度稍微快点,在高版本的qemu-kvm中,几乎不比qcow2的格式快,而qcow2格式节省空间,可动态增长,在公有云中广泛使用,建议使用qcow2.

所以有时候,我们需要将raw格式的磁盘转换成qcow2格式。创建一个raw格式的磁盘文件.

可以将raw格式转换成qcow2格式

qemu-img convert -f raw -O qcow2 /kvm-vm/vmtest1.raw   /kvm-vm/vmtest1.qcow2
           

安装虚拟机

virt-install命令参数
通用选项:
-n NAME, --name=NAME:虚拟机名称,需全局惟一; 
-r MEMORY, --ram=MEMORY:虚拟机内在大小,单位为MB; 
--vcpus=VCPUS[,maxvcpus=MAX][,sockets=#][,cores=#][,threads=#]:VCPU个数及相关配置; 
--cpu=CPU:CPU模式及特性,如coreduo等;可以使用qemu-kvm -cpu ?来获取支持的CPU模式;

安装方法:
-c CDROM, --cdrom=CDROM:光盘安装介质; 
-l LOCATION, --location=LOCATION:安装源URL,支持FTP、HTTP及NFS等,如ftp://172.16.0.1/pub;
--pxe:基于PXE完成安装; 
--livecd: 把光盘当作LiveCD; 
--os-type=DISTRO_TYPE:操作系统类型,如linux、unix或windows等; 
--os-variant=DISTRO_VARIANT:某类型操作系统的变体,如rhel5、fedora8、debian10等; 
-x EXTRA, --extra-args=EXTRA:根据--location指定的方式安装GuestOS时,用于传递给内核的额外选项,例如指定kickstart文件的位置,--extra-args "ks=http://172.16.0.1/class.cfg" 
--boot=BOOTOPTS:指定安装过程完成后的配置选项,如指定引导设备次序、使用指定的而非安装的kernel/initrd来引导系统启动等 ; 例如: 
--boot  cdrom,hd,network:指定引导次序; 
--boot kernel=KERNEL,initrd=INITRD,kernel_args=”console=/dev/ttyS0”:指定启动系统的内核及initrd文件;

存储配置:
--disk=DISKOPTS:指定存储设备及其属性;格式为--disk /some/storage/path,opt1=val1,opt2=val2等;常用的选项有: 
 device:设备类型,如cdrom、disk或floppy等,默认为disk; 
 bus:磁盘总结类型,其值可以为ide、scsi、usb、virtio或xen; 
 perms:访问权限,如rw、ro或sh(共享的可读写),默认为rw; 
 size:新建磁盘映像的大小,单位为GB; 
 cache:缓存模型,其值有none、writethrouth(缓存读)及writeback(缓存读写); 
 format:磁盘映像格式,如raw、qcow2、vmdk等; 
 sparse:磁盘映像使用稀疏格式,即不立即分配指定大小的空间; 
--nodisks:不使用本地磁盘,在LiveCD模式中常用;

网络配置:
-w NETWORK, --network=NETWORK,opt1=val1,opt2=val2:将虚拟机连入宿主机的网络中,其中NETWORK可以为: 
bridge=BRIDGE:连接至名为“BRIDEG”的桥设备; 
network=NAME:连接至名为“NAME”的网络;

其他选项:
model:GuestOS中看到的网络设备型号,如e1000、rtl8139或virtio等; 
mac:固定的MAC地址;省略此选项时将使用随机地址,但无论何种方式,对于KVM来说,其前三段必须为52:54:00; 
--nonetworks:虚拟机不使用网络功能;

图形配置:
--graphics TYPE,opt1=val1,opt2=val2:指定图形显示相关的配置,此选项不会配置任何显示硬件(如显卡),而是仅指定虚拟机启动后对其进行访问的接口; 
TYPE:指定显示类型,可以为vnc、sdl、spice或none等,默认为vnc; 
port:TYPE为vnc或spice时其监听的端口; 
listen:TYPE为vnc或spice时所监听的IP地址,默认为127.0.0.1,可以通过修改/etc/libvirt/qemu.conf定义新的默认值; 
password:TYPE为vnc或spice时,为远程访问监听的服务进指定认证密码; 
--noautoconsole:禁止自动连接至虚拟机的控制台;

设备选项:
--serial=CHAROPTS:附加一个串行设备至当前虚拟机,根据设备类型的不同,可以使用不同的选项,格式为“--serial type,opt1=val1,opt2=val2,...”,例如: 
--serial pty:创建伪终端; 
--serial dev,path=HOSTPATH:附加主机设备至此虚拟机; 
--video=VIDEO:指定显卡设备模型,可用取值为cirrus、vga、qxl或vmvga;

虚拟化平台:
-v, --hvm:客户端应该是一个全虚拟化客户端; 
-p, --paravirt:客户端应该是一个半虚拟化客户端; 
--virt-type=HV_TYPE:要用的管理程序名称(kvm,qemu,xen)
--arch=ARCH :模拟的CPU构架
-u  UUID:  客户端UUID

其他选项:
--autostart:引导主机时自动启动域
--print-xml  输出所生产、成域的XML,而不是定义虚拟机
--print-step=XMLSTEP   输出具体安装步骤
--noreboot   完成安装后不要引导虚拟机
--wait=WAIT  要等待的时间
--dry-run  完成安装步骤,但不要创建设备或者定义虚拟机
--force  对任意应用程序提示强制回答‘yes’ 终止其他提示
-q, --quite  禁止无错误输出
-d, --debug  输入故障排除信息
--prompt  要求用户为模糊情况或者需要的选项输入
           

安装

virt-install -n test1 -r 1024 --vcpus=1 --location=/iso/CentOS-7-x86_64-DVD-1611.iso  --disk path=/kvm-vm/vmtest1.qcow2,size=10,format=qcow2,sparse --nographics -x 'console=ttyS0'
           

使用交互式配置一些选项

VNC安装

virt-install -n test2 -r 1024 --vcpus=1 --location=/iso/CentOS-7-x86_64-DVD-1611.iso  --disk path=/kvm-vm/vmtest2.qcow2,sparse --accelerate  --graphics vnc,listen=0.0.0.0,port=8888   --noautoconsole 
           

需要开放端口

通过vnc连接配置

配置完成用无法用virsh console 登录上去,但是可以用vnc或ssh连接

有以下方法:(修改vnc安装的虚拟机)

修改grub配置文件,在内核一行加入console=ttyS0,重启

或者:

grubby --update-kernel=ALL --args="console=ttyS0"
           

如果是Ubuntu使用以下方法:

#sudo systemctl enable [email protected]
#sudo systemctl start [email protected]

#virsh edit VPS-Domain
\<graphics type='vnc' port='8888' autoport='no' listen='0.0.0.0' keymap='en-us'\/>
           

在其中加入passwd的属性

\<graphics type='vnc' port='8888' autoport='no' listen='0.0.0.0'  passwd='123456' keymap='en-us'\/>
           

virsh命令使用

virsh list                 # 查看在运行的虚拟机  
virsh dumpxml vm-name      # 查看kvm虚拟机配置文件  
virsh edit vm-name         # 修改虚拟机的配置文件(部分选项修改以后start虚拟机就可以生效)  
virsh start vm-name        # 启动kvm虚拟机  
virsh shutdown vm-name     # 正常关机  
virsh destroy vm-name      # 非正常关机,强制关闭虚拟机
virsh undefine vm-name     # 删除vm的配置文件  
ls  /etc/libvirt/qemu  
virsh define file-name.xml # 根据配置文件定义虚拟机  
virsh suspend vm-name      # 挂起,终止  
virsh resumed vm-name      # 恢复被挂起的虚拟机  
virsh autostart vm-name    # 开机自启动vm  
virsh console    # 连接虚拟机
           

删除虚拟机的方法

virsh destroy vm-name   	关闭虚拟机  
virsh undefine vm-name   删除vm配置文件 
rm /opt/kvm.raw 删除虚拟机磁盘(qcow2/row)
           

继续阅读