注:此方法为纯命令行安装kvm和虚拟机,没有任何图形化。
(1)cpu支持虚拟化
(2)64位
(3)内存2G以上
CRT远程宿主机,先连接好宿主机网络
(1)安装软件 yum install -y kvm virt-* libvirt bridge-utils qemu-img
/etc/init.d libvirtd start
(2)设置桥接网络
[[email protected] network-scripts]# vim ifcfg-eth0
DEVICE=eth0
NM_CONTROLLED=yes
ONBOOT=yes
TYPE=Ethernet
BOOTPROTO=none
IPV6INIT=no
USERCTL=no
PREFIX=24
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
NAME="eth0"
HWADDR=00:0C:29:12:EC:1E
BRIDGE=br0 添加此项
生成桥设备的配置文件:
[[email protected] network-scripts]# vim ifcfg-br0 #创建 ifcfg-br0 文件,并写入以下内容
DEVICE=br0
NM_CONTROLLED=yes
ONBOOT=yes
TYPE=Bridge
BOOTPROTO=none
IPADDR=192.168.0.#
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
DNS1=192.168.0.1
注:TYPE="Bridge" , B要大写
service network restart 重启网络查看ip
brctl show 查看桥接状态
(3)创建安装虚拟机
virt-install --name kvm --ram 512 --disk path=/var/lib/libvirt/images/kvm.img,format=qcow2,size=10,bus=virtio --vcpus 1 --os-type linux --os-variant rhel6 --network bridge=br0 --graphics none --console pty,target_type=serial --location /mnt/CentOS-7-x86_64-Minimal-1503-01.iso --extra-args ‘console=ttyS0,115200n8 serial‘ (里面参数需要自己设定)
--name 指定虚拟机的名字
--ram 指定内存分配多少
--disk path 指定虚拟磁盘放到哪里,size=30 指定磁盘大小为30G,这样磁盘文件格式为raw,raw格
式不能做快照,后面有说明,需要转换为qcow2格式,如果要使用qcow2格式的虚拟磁盘,需要事先创
建qcow2格式的虚拟磁盘。 示例:qemu-img create -f qcow2 -o preallocation=metadata
/data/kvm/ddb2.qcow2 10G --disk path=/data/ddb2.img,format=qcow2,size=7,bus=virtio
--vcpus 指定分配cpu几个
--os-type 指定系统类型为linux
--os-variant 指定系统版本
--network 指定网络类型
--graphics 指定安装通过哪种类型,可以是vnc,也可以没有图形,在这里我们没有使用图形直接使
用文本方式
--console 指定控制台类型
--location 指定安装介质地址,可以是网络地址,也可以是本地的一个绝对路径,如果是绝对路径,
那么后面还需要指定一个安装介质,比如NFS,假如虚拟机设置ip后,不能连外网,那么就会提示让我
们选择安装途径。
执行完成后会创建虚拟机并进入文本控制台界面,剩下的就是选项基本和正常装机一样
安装完成后重启会直接进入虚拟机, 点击Ctrl+]会退出虚拟机回到宿主机,virsh console name宿主机进入虚拟机。
命令行:
virsh list #显示本地活动虚拟机
virsh list –all #显示本地所有的虚拟机(活动的+不活动的)
virsh define name.xml #通过配置文件定义一个虚拟机(这个虚拟机还不是活动的)
virsh start name #启动名字为ubuntu的非活动虚拟机
virsh create name.xml # 创建虚拟机(创建后,虚拟机立即执行,成为活动主机)
virsh suspend name # 暂停虚拟机
virsh resume name # 启动暂停的虚拟机
virsh shutdown name # 正常关闭虚拟机
virsh destroy name # 强制关闭虚拟机
virsh undefine name #删除虚拟机
virsh dominfo name #显示虚拟机的基本信息
virsh domname 2 # 显示id号为2的虚拟机名
virsh domid name # 显示虚拟机id号
virsh domuuid name # 显示虚拟机的uuid
virsh domstate name # 显示虚拟机的当前状态
virsh dumpxml name # 显示虚拟机的当前配置文件(可能和定义虚拟机时的配置不同,因为当虚拟机启动时,需要给虚拟机分配id号、uuid、vnc端口号等等)
virsh setmem name 512000 #给不活动虚拟机设置内存大小
virsh setvcpus name 4 # 给不活动虚拟机设置cpu个数
virsh edit name # 编辑配置文件(一般是在刚定义完虚拟机之后)
virsh autostart name # 虚拟机随着KVM服务器启动而启动
libvirt还提供了一个shell:virsh,直接执行名virsh即可获得一个特殊的shell:virsh,在这个virsh里面可以执行上面的命令(去掉前面的virsh)与本地libvirt交互,还可以通过命令connect命令连接远程libvirt,与之交互,例如:connect xen+ssh://[email protected]。另外可以只执行一条远程libvirt命令:virsh –c xen+ssh://[email protected] list --all