美文网首页
qemu-kvm、qemu-img命令使用方式

qemu-kvm、qemu-img命令使用方式

作者: 任总 | 来源:发表于2018-12-10 22:48 被阅读91次

    本文介绍使用qemu-kvm管理vms:

    一、Qemu的作用:

    • 处理器模拟器
    • 仿真各种IO设备
    • 将仿真设备连接至主机的物理设备
    • 提供用户接口

    二、qemu-kvm命令

    格式:qemu-kvm [options] [disk_image]

    1、选项类别:

    标准选项、块设备相关选项、显示选项、网络选项、...

    (1)、标准选项:
    • -machine [type=]name:-machine help来获取列表,用于指定模拟的主机类型;
    • -cpu cpu:-cpu help来获取列表;用于指定要模拟的CPU型号;
    • -smp n[,maxcpus=cpus处理器数量][,cores=cores内核数量][,threads=threads线程][,sockets=sockets插槽]:指明虚拟机上vcpu的数量及拓扑;
    • -boot [order=drives][,once=drives][,menu=on|off] [,splash=sp_name][,splash-time=sp_time][,reboot-timeout=rb_time][,strict=on|off]
    • order:各设备的引导次序:c表示第一块硬盘,d表示第一个光驱设备;-boot order=dc,once=d
    • -m megs:虚拟机的内存大小;
    • -name NAME:当前虚拟机的名称,要惟一;
    (2)、块设备相关的选项:

    传统表示方式:

    • -hda/-hdb file:指明IDE总线类型的磁盘映射文件路径;第0和第1个;
    • -hdc/-hdd file:第2和第3个;
    • -cdrom file:指定要使用光盘映像文件;
    • -drive [file=file][,if=type][,media=d][,index=i] [,cache=writethrough|writeback|none|directsync|unsafe][,format=f]:
    • file=/PATH/TO/SOME_IMAGE_FIL>E:映像文件路径;
    • if=TYPE:块设备总线类型,ide, scsi, sd, floppy, virtio,...
    • media=TYPE:介质类型,cdrom和disk;
    • index=i:设定同一类型设备多个设备的编号;
      cache=writethrough|writeback|none|directsync|unsafe:缓存方式;
    • format=f:磁盘映像文件的格式;

    qemu-img创建磁盘实例:

    #创建一个磁盘
    [root@node-64 ~]# qemu-img create -f qcow2 -o preallocation=metadata,size=2G /vms/cirros/newdisk.qcow2
    Formatting '/vms/cirros/newdisk.qcow2', fmt=qcow2 size=2147483648 encryption=off cluster_size=65536 preallocation='metadata' lazy_refcounts=off 
    
    (3)、显示选项:
    • -display type:显示的类型,sdl, curses, none和vnc;
    • -nographic:不使用图形接口;
    • -vga [std|cirrus|vmware|qxl|xenfb|none]:模拟出的显卡的型号;
    • -vnc display[,option[,option[,...]]]]:启动一个vnc server来显示虚拟机接口; 让qemu进程监听一个vnc接口;
    display有以下几种:
    • (1) HOST:N方式

      • 在HOST主机的第N个桌面号输出vnc;
        • 例如5900:1
    • (2) unix:/PATH/TO/SOCK_FILE

    • (3) none不显示

    options:
    • password:连接此服务所需要的密码;

    -monitor stdio:在标准输出上显示monitor界面;

    Ctrl-a, c:在console和monitor之间切换;
    Ctrl-a, h

    (4)、网络选项:

    -net nic[,vlan=n][,macaddr=mac][,model=type][,name=str][,addr=str][,vectors=v]
    为虚拟机创建一个网络接口,并将其添加至指定的VLAN;

    • model=type:指明模拟出的网卡的型号,ne2k_pci,i82551,i82557b,i82559er,rtl8139,e1000,pcnet,virtio;

    -net nic,model=?

    • macaddr=mac:指明mac地址;52:54:00:

    -net tap[,vlan=n][,name=str][,fd=h][,fds=x:y:...:z][,ifname=name][,script=file][,downscript=dfile]:
    通过物理的TAP网络接口连接至vlan n;

    • script=file:启动虚拟机时要执行的脚本,默认为/etc/qemu-ifup
    • downscript=dfile:关闭虚拟机时要执行的脚本,/etc/qemu-ifdown
    • ifname=NAME:自定义接口名称;
    (5)、其它选项:

    -daemonize:以守护进程运行;

    注意:创建磁盘映像文件,用于存放虚拟机虚拟磁盘,稀疏格式的,实际占用空间要远小于创建声明空间大小:

    示例1:创建虚拟机实例

    ~]# qumu-dmg create -f qcow2 -o preallocation=metadata,size=10G /vms/centos/centos7.img
    #查看新创建映像文件信息
    ~]# qemu-img info centos7.img
    
    ~]#  qemu-kvm -name c2 -smp 2,maxcpus=4,sockets=2,cores=2 -m 128 -drive file=/vms/centos/centos7.img,if=virtio -vnc  :1 -daemonize -net nic,model=e1000,macaddr=52:54:00:00:00:11 -net tap,script=/etc/qemu-ifup
    

    示例2:创建虚拟机实例

    #添加一个网桥
    ~]# brctl addbr br0 
    
    # 查看创建的网桥
    ~]# brctl show 
    
    #将创建的网桥开启
    ~]# ifconfig br0 up 
    
    #安装qemu-kvm工具包
    ~]# yum install qemu-kvm 
    
    #由于安装好的qemu不在/usr/bin/下所以需要链接至其下
    ~]# ln -sv /usr/libexec/qemu-kvm /usr/bin/ 
    
    #查看所支持模拟机器的类型
    ~]# qemu-kvm -machine ?
    
    #查看模拟所支持的cpu的类型
    ~]# qemu-kvm -cpu ?  
    

    CentOS磁盘镜像文件下载:
    https://cloud.centos.org/centos/7/images/

    #新建一个网卡脚本,使虚拟机网卡自动添加网桥
    ~]# vim  /etc/qemu-ifup  
    
    #!/bin/bash
    #
    bridge=br0
    
    if [ -n “$1” ];then
    ip link set $1 up
    sleep 1
    brctl addif $bridge $1
    [ $? -eq 0 ] && exit 0 || exit 1
    else
    echo “Error: no interface specified.”
    exit 2
    fi
    
    #检查脚本的语法错误
    ~]# bash -n /etc/qemu-ifup   
    
    #添加执行权限
    ~]# chmod +x /etc/qemu-ifup   
    
    #创建文件夹。来存放磁盘镜像文件
    ~]# mkdir /data/VMs/c1   -p 
    
    # 进入此目录下
    ~]# cd /data/VMs/c1/   进入此目录下
    
    #将此镜像文件下载到本目录下
    ~]#wget http://download.cirros-cloud.net/0.4.0/cirros-0.4.0-x86_64-disk.img
    
    #将文件重新命名
    ~]# mv cirros-0.4.0-x86_64-disk.img c1.img   
    
    #创建虚拟机
    ~]#  qemu-kvm -name c1 -smp 2 -m 128 -cpu host -drive file=/data/VMs/c1/c1.img,if=virtio,media=disk,cache=writeback,format=qcow2 -net nic,macaddr=52:54:00:00:00:11,model=virtio -net tap,script=/etc/qemu-ifup -vnc :0 (回车查看5900的端口 已经打开了)
    
    通过桌面上的vnc链接到本机的IP地址192.168.1.64:0  (就可以连接上了)
    
    连接上之后,给此虚拟机添加一个IP地址:ifconfig eth0 10.0.0.4/16
    
    查看添加的网卡接口位:tap0
    
    远程ssh也是可以来凝结本虚拟机的。
    
    如果需要关闭虚拟机直接将qemu进程杀掉就可以了。
    
    如果再创建一个虚拟机,vnc的编号要改;mac地址也要改;磁盘镜像文件也要添加新的
    
     
    

    参考链接:
    http://www.178linux.com/103971

    相关文章

      网友评论

          本文标题:qemu-kvm、qemu-img命令使用方式

          本文链接:https://www.haomeiwen.com/subject/dpoqcqtx.html