设为首页 收藏本站
查看: 1884|回复: 2

[经验分享] KVM绝不是你想的那么难

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-4-6 09:16:51 | 显示全部楼层 |阅读模式
KVM:
        必须在64位系统上运行
        CPU必须支持HVM (硬件虚拟化)
                # grep -o -E 'svm|vmx' /proc/cpuinfo

装载模块:
        modprobe
                kvm_intel   kvm_amd
                kvm

安装kvm:
        Virtualization
                提供qemu-kvm工具
        Virtualization Client
        Virtualization Platform
                提供libvirt, libvirt-client,virt-who,virt-what
        Virtualization Tools
                提供libguestfs

# yum -y groupinstall "Virtualization" "Virtualization Client"         "Virtualization Platform"


使用virt-install创建虚拟机并安装GuestOS

需要依赖libvirtd服务
# service libvirtd start
启动 libvirtd 守护进程:                                   [确定]

virt-install是一个命令行工具,它能够为KVM,Xen或其它支持libvirt API的hypervisor创建虚拟机并完成GuestOS的安装;此外,它能够基于串行控制台,VNC或SDL支持文本或图形安装界面。安装过程可以使用本地的安装介质如CDROM,也可以通过网络方式如NFS,HTTP或FTP服务实现。对于通过网络安装的方式,virt-install可以自动加载必要的文件以启动安装过程而无须提供额外引导工具。当然,virt-install也可以支持PXE方式的安装过程,也能够直接使用现有的磁盘映像直接启动安装过程。

virt-install命令有许多选项,这些选项可分为以下几大类:

1)一般选项,指定虚拟机的名称,内存大小、VCPU个数及特性等
        -n <name>:虚拟机名称,全局惟一
        -r <memory>:虚拟机内存大小 ,单位为MB
        --vcpus=VCPUS[,maxvcpus=MAX][,sockets=#][,core=#],[threads=#]:VCPU个数及相关配置
        --cpu=CPU:CPU模式及特性,如coreduo等;可以使用qemu-kvm --cpu ?来获取CPU支持的模式

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

3)存储配置:指定存储类型,位置及属性
        --disk=DISKOPTS:指定存储设备及其属性,格式为--disk /some/storage/path,opt1=value,opt2=value;常用的选项有:
                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模式中常用

4)网络配置:指定网络接口的网络类型及接口属性如MAC地址、驱动模式等
        -w NETWORK,--network=NETWORK,opt1=value,opt2=value:将虚拟机连入宿主机的网络中,其NETWORK可以为:
                bridge=BRIDGE:连接至名为"BRIDGE"的桥设备
                network=NAME:连接至名为"NAME"的网络

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

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

5)设备选项:指定文本控制台,声音设备,串行接口,并行接口,显示接口等
        --serial=CHARPORTS:附加一个串行设备至当前虚拟机,根据设备类型的不同,可以使用不同的选项,格式为"--serial type,opt1=value,opt2=value",例如:
                --serial pty:创建伪终端
                --serial dev,path=HOSTPATH:附加主机设备到此虚拟机
                --vedio=VEDIO:指定显卡设备模型,可用取值为cirrus,vga,qxl或vmvga

6) 虚拟化平台:虚拟化模型(hvm或paravirt)、模拟的cpu平台类型、模拟的主机类型、hypervisor类型以及当前虚拟机的UUID等
        -v:当物理机同时支持完全虚拟化和半虚拟机时,指定使用完全虚拟化
        -p:指定使用半虚拟化
        --vir-type:使用的hypervisor,如kvm,qemu,xen等;所有可用值可以使用"virsh capabilities"命令获取

7) 其他
        --autostart:指定虚拟机是否在物理机启动后自动启动
        --print-xml:如果虚拟机不需要安装过程,则显示生成的XML而不是创建虚拟机;默认情况下,此选项仍会创建磁盘映像
        --force:禁止命令进行交互式模式,如果有需要回答yes或no选项,则自动回答为yes
        --dry-run:执行创建虚拟机的整个过程,但不真正创建虚拟机、改变主机上的设备配置信息及将其创建的需要通知给libvirt
        -d,--debug:显示debug信息

尽管vir-install命令有许多选项,但实际使用中,其必须提供的选项仅包括--name,--ram,--disk及安装过程相关的选项。此外,有时还需要使用--connect=CONNECT选项来指定连接至一个非默认的hypervisor。



下面这个示例创建一个名为rhel5的虚拟机,其hypervisor为KVM,内存大小为512M,磁盘为8G的映像文件/var/lib/libvirt/images/rhel5.8.img,通过boot.iso光盘镜像来引导

# virt-install \
--connect qemu:///system \
--virt-type kvm \
--name rhel5 \
--ram 512 \
--disk path=/var/lib/libvirt/images/rhel5.img,size=8 \
--graphics vnc \
--cdrom /tmp/boot.iso \
--os-variant rhel5                


查看当前主机支持的连接hypervisor方式
# virsh uri
qemu:///system               

# virsh define:根据事先存在的xml文件创建虚拟机,创建后不会自动启动
# virsh create:创建虚拟机,创建后会自动启动
# virsh undefine:删除虚拟机


下面的示例将创建一个名为rhel6的虚拟机,其有两个虚拟CPU,安装方法为FTP,并指定了ks文件的位置,磁盘映像文件为稀疏格式,连接至物理主机上的名为brnet0的桥接网络

# virt-install \
--connect qemu:///system \
--virt-type kvm \
--name rhel6 \
--ram 1024 \
--vcpus 2 \
--network bridge=brnet0 \
--disk path=/VMs/images/rhel6.img,size=120,sparse \
--location ftp://10.1.1.1/rhel6/dvd \
--extra-args="ks=http://10.1.1.1/rhel6.cfg" \
--os-variant rhel6 \
--force

下面的示例将创建一个名为rhel5.8的虚拟机,磁盘映像文件为稀疏模式的格式为qcow2且总线类型为virtio,安装过程不启动图形界面,但会启动一个串行终端将安装过程以字符形式显示在当前文本模式下,虚拟机显卡类型为cirrus

# virt-install \
--connect qemu:///system \
--virt-type kvm \
--name rhel5.8 \
--vcpus 2,maxvcpus=4 \
--ram 512 \
--disk path=/VMs/images/rhel5.8.img,size=120,format=qcow2,bus=virtio,sparse \
--network bridge=brnet0,model=virtio \
--nographics \
--location ftp://10.1.1.1/pub \
--extra-args "ks=http://10.1.1.1/class.cfg console=ttyS0 serial" \
--os-variant rhel5 \
--force \
--video=cirrus

下面的示例则利用已经存在的的磁盘映像文件(已经有安装好的系统)创建一个名为rhel 5.8的虚拟机

# virt-install \
--name rhel5.8 \
--ram 512 \
--disk /VMs/rhel5.8.img \
--import

每个虚拟机创建后,其配置信息保存在/etc/libvirt/qemu目录中,文件名与虚拟机名称相同,格式为XML





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-200276-1-1.html 上篇帖子: linux上kvm的安装及使用 下篇帖子: KVM——复制xml文件与磁盘文件复制克隆虚拟机
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表