创建KVM实例详细步骤

简介:
                               第一步

用本地文件创建本地yum源
  1. 创建iso存放目录和挂载目录
    mkdir /mnt/iso 
    mkdir /mnt/cdrom

  2. 将iso镜像文件上传到/mnt/iso文件夹下

  3. 将/mnt/iso/下的iso文件挂载到/mnt/cdrom目录

    mount -o loop /mnt/iso/XXXXX.iso /mnt/cdrom

    mount -o loop /mnt/iso/rhel-server-7.2-x86_64-dvd.iso /mnt/cdrom/
    <注:挂载完之后对其操作会提示设备繁忙,此时需要umount解开挂载才行>
    查看是否挂载成功: df -h
    <用来查看系统中所有挂载的,mount也可以>

  4. 最关键的一步>如果/etc/yum.repos/下面有其它的.repo文件,先创建个文件夹,将这些.repo先转移到文件夹中,自己写一个.repo的文件
    mkdir /etc/yum.repos.d/bak

    mv *.repo /etc/yum.repos.d/bak

    然后创建自己的.repo文件

    vi myself.repo

    内容如下:
    [base]
    name=RedHat
    #注:这里的baseurl就是你挂载的目录,在这里是/mnt/cdrom
    baseurl=file:///mnt/cdrom 
    #注:这里的值enabled一定要为1 
    enabled=1 
    gpgckeck的值无所谓
    gpgckeck=0
    #注:这个你cd /mnt/cdrom/可以看到这个key,这里仅仅是个例子
    gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-CentOS-5

[root@gw-imserver01-bj yum.repos.d]# cat myself.repo

[base]
name=RedHat
baseurl=file:///mnt/cdrom
enabled=1
gpgckeck=0
#gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-redhat-release
gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-CentOS-7

  1. 测试:
    yum clean all
    yum install vim*

                                第二步

yum -y install qemu-kvm qemu-img virt-manager libvirt libvirt-python python-virtinst libvirt-client virt-install virt-viewer

安装要用的软件
安装kvm模块
#yum -y install qemu-kvm.x86_64

安装kvm调试工具(可以不安装) 
#yum -y install qemu-kvm-tools.x86_64

安装python组件,主要用来记录创建vm时的xml文件
#yum -y install python-virtinst.noarch

安装qemu组件,使用qemu命令来创建磁盘,启动虚拟机等(这个可能在安装时qemu-kvm.x86_64已安装)
#yum -y install qemu-img.x86_64

安装网络支持工具
#yum -y install bridge-utils.x86_64

安装虚拟机管理工具,使用virsh来管理虚拟机
#yum -y install libvirt

此时用 /sbin/ifconfig 查看会多出一个 virbr0 ,这是由于安装和启用了 libvirt 服务后生成的,libvirt 在服务器(host)上生成一个 virtual network switch (virbr0),host 上所有的虚拟机(guests)通过这个 virbr0 连起来。默认情况下 virbr0 使用的是 NAT 模式(采用 IP Masquerade),所以这种情况下 guest 通过 host 才能访问外部。
大多数时候我们虚拟机使用的是 bridge(网桥)直接连到局域网里,所以这个 virbr0 不是必须的(注:不要搞混淆了,bridge 和这里的 virbr0 bridge 是互不相干的)。如何关掉这个 virbr0 呢?先 net-destroy 然后 net-undefine,最后别忘了重启 libvirtd 让设置生效:

chkconfig NetworkManager off

virsh net-list

Name State Autostart


default active yes

virsh net-destroy default

Network default destroyed

virsh net-undefine default

Network default has been undefined

service libvirtd restart

Stopping libvirtd daemon: [ OK ] 
Starting libvirtd daemon: [ OK ]
这样就关掉了 virbr0 在使用双机软件过程中,如果系统是red hat 5.x 默认系统安装完成后为xen内核,那么xen内核引导启动后就会有虚拟网卡(vethx、vif0.x、virbr0、xenbr1等)存在。 
这就会直接导致双机软件的两台机器中都会有相同的IP地址存在(virbr0网卡的IP地址都为192.168.122.1)。所以会导致双机系统中的主机关机时,备机不会接管的现象。所以,需要将virbr0卸载掉

重新启动

四、.检查kvm模块是否安装完成
#lsmod | grep kvm
会显示两个模块
kvm_intel/ kvm_amd 
kvm

检查物理主机虚拟化完成情况
#virsh list

Id Name State

出现如上表明已装好了

五.设置网卡bridge模式

单网卡桥接

#cd /etc/sysconfig/network-scripts/
#vi ifcfg-eth0

加BRIDGE=br0

cp ifcfg-eth0 ifcfg-br0
改 DEVICE=br0
TYPE=Bridge
还要删掉system name uuid等
#service network restart

多网卡 桥接

cp ifcfg-eth0 ifcfg-br0 
cp ifcfg-eth1 ifcfg-br1
cp ifcfg-eth2 ifcfg-br2

分别 修改 ifcfg-eth0 ifcfg-br0 ifcfg-eth0 增加 BRIDGE=br0 ,删除 IPADDR和NETMASK ,ifcfg-br0 增加 TYPE=Bridge,增加ifcfg-eth0中的IPADDR和NETMASK
分别 修改 ifcfg-eth1 ifcfg-br1 ifcfg-eth1 增加 BRIDGE=br1 ,删除 IPADDR和NETMASK ,ifcfg-br1 增加 TYPE=Bridge,增加ifcfg-eth1中的IPADDR和NETMASK
分别 修改 ifcfg-eth2 ifcfg-br2 ifcfg-eth2 增加 BRIDGE=br2 ,删除 IPADDR和NETMASK ,ifcfg-br2 增加 TYPE=Bridge,增加ifcfg-eth2中的IPADDR和NETMASK

[root@GW-DUDUServer11-TJ network-scripts]# cat ifcfg-eth0
DEVICE=eth0
BOOTPROTO=static
ONBOOT=yes
TYPE=Ethernet
NM_CONTROLLED=no
BRIDGE=br0
[root@GW-DUDUServer11-TJ network-scripts]# cat ifcfg-eth1
DEVICE=eth1
BOOTPROTO=static
ONBOOT=yes
TYPE=Ethernet
NM_CONTROLLED=no
BRIDGE=br1
[root@GW-DUDUServer11-TJ network-scripts]# cat ifcfg-eth2
DEVICE=eth2
BOOTPROTO=static
ONBOOT=yes
TYPE=Ethernet
NM_CONTROLLED=no
BRIDGE=br2
[root@GW-DUDUServer11-TJ network-scripts]# cat ifcfg-br0
DEVICE=br0
BOOTPROTO=static
IPADDR=192.168.155.239
NETMASK=255.255.255.0
ONBOOT=yes
TYPE=Bridge
NM_CONTROLLED=no
[root@GW-DUDUServer11-TJ network-scripts]# cat ifcfg-br1
DEVICE=br1
BOOTPROTO=static
IPADDR=125.39.158.100
NETMASK=255.255.255.128
ONBOOT=yes
TYPE=Bridge
NM_CONTROLLED=no
[root@GW-DUDUServer11-TJ network-scripts]# cat ifcfg-br2
DEVICE=br2
BOOTPROTO=static
IPADDR=123.150.170.77
NETMASK=255.255.255.128
ONBOOT=yes
TYPE=Bridge
NM_CONTROLLED=no

#ifconfig

br0 Link encap:Ethernet HWaddr 1C:6F:65 0:CC:AF 
inet addr:58.211.112.15 Bcast:58.255.255.255 Mask:255.255.255.240
inet6 addr: fe80::6881:d3ff:fe70:3101/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:3525519 errors:0 dropped:0 overruns:0 frame:0
TX packets:1875715 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0 
RX bytes:4633406660 (4.3 GiB) TX bytes:222071251 (211.7 MiB)

eth0 Link encap:Ethernet HWaddr 1C:6F:65 0:CC:AF 
inet6 addr: fe80::1e6f:65ff:fed0:ccaf/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:3527263 errors:0 dropped:0 overruns:0 frame:0
TX packets:1876659 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000 
RX bytes:4682951686 (4.3 GiB) TX bytes:222162510 (211.8 MiB)
Interrupt:25 Base address:0x4000

lo Link encap:Local Loopback 
inet addr:127.0.0.1 Mask:255.0.0.0

出现以上表明安装已正常完成了

六、可以用virt-install 来新建虚拟机了,但是启动后没办法看到
所以要安装客户端来管理,也可以用virsh来管理但还要加VNC来连接虚拟机
安装VNC
#yum install tigervnc-server.x86_64

改防火墙
还要改一下iptables
#vi /etc/sysconfig/iptables
加一句
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 6900 -j ACCEPT
#service iptables restart

                                         第三步

可以开始新建虚拟机

virt-install --name haorenIM --ram 1024 --vcpus=1 --disk path=/home/kvm/img/redhat.img,size=20 --network bridge=virbr0 --os-variant=rhel4 --cdrom=/home/kvm/soft/RHEL4.7.iso --vnclisten=0.0.0.0 --vncport=6900 --vnc

说明:--disk path=/home/kvm/img/redhat.img 镜像存放路径

virt-install --name haorenIM3 --ram 8192 --vcpus=4 --disk path=/home/kvm/img/redhat3.img,size=30 --network bridge=br0 --network bridge=br1 --network bridge=br2 --os-variant=rhel6 --cdrom=/mnt/iso/rhel-server-6.4-x86_64-dvd.iso --vnclisten=0.0.0.0 --vncport=6902 --vnc

virt-install --name haorenIM1 --ram 8192 --vcpus=4 --disk path=/home/kvm/img/redhat3.img,size=30 --network bridge=br0 --network bridge=br1 --os-variant=rhel6 --cdrom=/mnt/iso/rhel-server-6.4-x86_64-dvd.iso --vnclisten=0.0.0.0 --vncport=6900 --vnc

virt-install --name haorenIM1 --ram 16384 --vcpus=8 --disk path=/home/kvm/image/redhat1.img,size=100 --network bridge=br0 --network bridge=br1 --os-variant=rhel7 --cdrom=/mnt/iso/rhel-server-7.2-x86_64-dvd.iso --vnclisten=0.0.0.0 --vncport=6901 --vnc

(1) 用virsh list显示已安装的虚拟机
(2) Virsh start haorenIM启动 名为haorenIM 系统
(3) 用virsh edit haorenIM 编辑 主机名为 haorenIM 的配置文件
(4) 再次执行virsh list 看看起来没有
(5) lsof -i:6900 查看端口号
(6) 查看防火墙iptables-save
(7) service iptables stop/start
(8) 用VNC连接虚拟机

(9) 克隆虚拟机 先暂停源虚拟机virsh undefined haorenIM
(10) 开始克隆virt-clone -o haorenIM -n haorenIM2 -f //home/kvm/img/redhat2.img
(11) 重新定义 virsh define /etc/libvirt/qemu/haorenIM2.xml
(12) virsh resume haorenIM 继续执行
(13) virsh edit haorenIM2 修改配置文件,主要是 修改端口号和IP地址 和之前的不冲突
(14) virsh start haorenIM2 启动虚拟机
(15) virsh list 显示两个虚拟机都在运行

                         第二种方法克隆

(1)先执行apt -get install acpid进行安装并启动该服务,即可让虚拟机响应shutdown命令,否则执行virsh shutdown
不起作用,然后再执行virsh shutdown 虚拟机名 ,执行后有点慢,稍等下再执行 virsh list 进行查看确认

(2)执行virsh dumpxml haorenIM2 > /etc/libvirt/qemu/haorenIM3.xml 克隆配置文件

(3)克隆镜像文件,进入镜像文件存放目录 cp redhat2.img redhat3.img

(4) 直接编辑修改配置文件修改name,uuid,disk位置,vnc端口此时还是将该配置文件注册进来,无法通过virsh edit进行编辑

(5) vi haorenIM3.xml,修改uuid,name ,port,ID

(6)重新定义 virsh define haorenIM3.xml ,就可以virsh edit haorenIM3 了

(7) virsh start haorenIM3 就可以启动haorenIM3虚拟机了










本文转自 chengxuyonghu 51CTO博客,原文链接:http://blog.51cto.com/6226001001/2052218,如需转载请自行联系原作者
目录
相关文章
|
3天前
|
安全 Linux 数据安全/隐私保护
Centos7的虚拟机创建流程
Centos7的虚拟机创建流程
34 6
|
5月前
|
Ubuntu Linux 网络安全
虚拟机创建与连接的详细步骤
虚拟机技术已成为现代计算领域的一项关键技术,允许在一台物理计算机上运行多个独立的操作系统。虚拟机的创建和连接对于开发、测试和部署应用程序都非常重要。在本文中,我们将深入探讨虚拟机的创建和连接的详细步骤,包括常用的虚拟化软件,如VirtualBox和VMware。此外,我们还将提供一些示例代码,以帮助您更好地理解和实施这些步骤。
164 0
|
5月前
|
存储 网络安全 云计算
AWS EC2入门指南中创建和配置云虚拟机实例的基本步骤
Amazon Elastic Compute Cloud(EC2)是亚马逊云计算(AWS)提供的一项强大的云计算服务,它允许用户轻松地启动虚拟机实例以运行应用程序和服务。本文将引导您完成 AWS EC2 的快速入门过程,以帮助您开始使用这一强大的云计算服务。
125 0
|
8月前
|
Linux 数据安全/隐私保护
如何创建和配置linux虚拟机(二)
如何创建和配置linux虚拟机(二)
|
Linux 虚拟化
使用脚本快速初始化VMware下Linux虚拟机新增数据盘
使用脚本快速初始化VMware下Linux虚拟机新增数据盘
118 0
使用脚本快速初始化VMware下Linux虚拟机新增数据盘
|
大数据 开发者
安装部署--虚拟机新增磁盘操作(可选步骤) | 学习笔记
快速学习 安装部署--虚拟机新增磁盘操作(可选步骤)
269 0
安装部署--虚拟机新增磁盘操作(可选步骤) | 学习笔记
创建虚拟机实例(下)
创建虚拟机实例(下)
72 0
创建虚拟机实例(下)