研究一下如何进入虚拟机

  1. https://blog.csdn.net/zhaihaifei/article/details/58156297—重要,使用virt-install安装虚拟机并配置桥接网络
  2. https://blog.csdn.net/ubuntu64fan/article/details/8137236—登录虚拟机配置的重要参考
  3. https://jingyan.baidu.com/article/d5a880ebaa643213f147ccc7.html—安装过程参考
  4. https://www.cnblogs.com/saryli/p/11827903.html—virt-install相关的参数
  5. https://my.oschina.net/williamherrychina/blog/56463-virt-install参数英文
  6. https://www.cnblogs.com/xia-dong/p/11511293.html—kvm中的virtio介绍

    1.确认硬件平台是否支持虚拟化,并安装相应的工具,创建目录和硬盘、宿主机的网桥配置

    ```shell

    运行如下命令后,如果输出中有vmx或者svm,则cpu支持硬件虚拟化

    egrep ‘(vmx|svm)’ —color /proc/cpuinfo

安装kvm的相应工具

sudo apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils qemu virt-manager virt-viewer

创建虚拟机前创建存放iso和虚拟机镜像文件的目录,

并且将.iso文件放在/home/dick/iso目录下

mkdir /home/dick/iso
mkdir /home/dick/kvming

创建虚拟机硬盘qemu-img命令

qemu-img create -f qcow2 /home/dick/kvming/test.img 4G #在该目录下创建4G的硬盘存储 qemu0img create -f qcow2 /var/lib/libvirt/images/controller.img 100G #创建100G的虚拟机硬盘

宿主机的网桥配置,网桥配置要在创建虚拟机命令前进行,创建br-ctl网桥

——————宿主机的桥接网络配置————————-

sudo /etc/init.d/networking stop #先停止网络服务 sudo cp /etc/network/interfaces /etc/network/interfaces_bak #备份一套原有配置 sduo vim /etc/network/interfaces

—————————————-参考配置1

auto lo iface lo inet loopback auto em1 iface em1 inet manual #上网方式采用自动

添加网桥br-em1

auto br-em1 iface br-em1 inet static address 192.168.4.240 #将em1的ip地址分配给网桥。 netmask 255.255.255.0 network 192.168.4.0 broadcast 192.168.4.255 gateway 192.168.4.250

  1. # dns-* options are implemented by the resolvconf package, if installed
  2. dns-nameservers 8.8.8.8
  3. dns-search ctler
  4. bridge_ports em1 #为网桥添加接口em1(之前默认的上网网口)
  5. bridge_stp off
  6. bridge_fd 0
  7. bridge_maxwait 0

重启网络

  1. <a name="1uHsd"></a>
  2. # 2.用virt-install命令创建虚拟机
  3. ```shell
  4. #-----------------virt-install相关参数介绍-----------------------#
  5. virt-install --virt-type kvm #虚拟机类型
  6. --name catserver1 #虚拟机名字
  7. --ram 1024 #虚拟机内存大小,单位为MB,也可以写成-r 1024
  8. --cdrom=/home/dick/iso/ubuntu-16.04.1-server-amd64.iso #光盘安装介质的路径 也可以写成 -c
  9. --disk path=/var/lib/libvirt/images/controller.img,bus=virtio,size=100 #指定存储设备和属性,
  10. #size是新建磁盘映像的大小,
  11. #format是磁盘映像格式,
  12. #如果已通过“-disk”选项指定了cdrom,但未指定“-cdrom”或任何其他安装选项,则“-disk”cdrom将用作安装介质。也即.img是创建出来的
  13. --network network=default #网络配置,default是不进行配置
  14. #--network bridge=br-ctl,model=virtio #配置网桥br-ctl
  15. --os-type=linux
  16. #-------------示例如下-----------#
  17. virt-install -n controller -r 4096 -c /var/lib/libvirt/images/ubuntu-14.04.5-server-amd64.iso --disk path=/var/lib/libvirt/images/controller.img,bus=virtio,size=100 --network bridge=br-ctl,model=virtio --graphics vnc,listen=0.0.0.0 --noautoconsole -v

3.虚拟机的网络配置—桥接网络

  1. #--------------虚拟机的网络配置-----------------
  2. #通过ReaalVNC或者TigerVNC进行虚拟机已安装的操作系统,修改/etc/network/interfaces如下
  3. #-------------------参考配置1
  4. auto eth0
  5. iface eth0 inet static
  6. address 192.168.4.243 #这个ip地址和宿主机的IP地址是同一个网段,但是末尾不同,宿主机192.168.4.240
  7. netmask 255.255.255.0 #剩下的netmask等和宿主机保持一致
  8. network 192.168.4.0
  9. broadcast 192.168.4.255
  10. gateway 192.168.4.250
  11. # dns-* options are implemented by the resolvconf package, if installed
  12. dns-nameservers 202.106.0.20
  13. dns-search network
  14. #-------------接着ping测试和宿主机192.168.4.240是否相通

4.远程连接和登录虚拟机,管理虚拟机

  1. #--------------使用virsh console的方式进入虚拟机-------#
  2. #宿主机上修改虚拟机vm1的配置文件
  3. virsh edit vm1
  4. #在<devices>...</devices>里面添加如下内容(注意, 如果已经存在就不要加了):
  5. <devices>
  6. ...
  7. <serial type='pty'>
  8. <source path='/dev/pts/2'/>
  9. <target port='0'/>
  10. </serial>
  11. <console type='pty' tty='/dev/pts/2'>
  12. <source path='/dev/pts/2'/>
  13. <target port='0'/>
  14. </console>
  15. </devices>
  16. #在虚拟机ubuntu上设置使得virsh console可以登录虚拟机
  17. #在虚拟机vm1中, 需要创建一个文件"/etc/init/ttyS0.conf", 内容如下(#注释部分可以忽略):
  18. # ttyS0.conf - getty
  19. # This service maintains a getty on ttyS0 from the point the system is
  20. # started until it is shut down again.
  21. start on stopped rc RUNLEVEL=[2345]
  22. stop on runlevel [!2345]
  23. respawn
  24. exec /sbin/getty -L 115200 ttyS0 vt220

5.管理虚拟机命令

  1. #---------管理虚拟机的命令-----------#
  2. virsh start 虚拟机的名字 #启动虚拟机 virsh start catserver1
  3. virsh shutdown catserver #关闭虚拟机
  4. virsh list --all #查看当前系统的虚拟机
  5. virsh vncdisplay catserver #查看VNC端口
  6. #删除虚拟机
  7. virsh destroy vm16 #强制停止虚拟机
  8. virsh undefine vm16 #删除虚拟机
  9. #之后删除虚拟机文件,()
  10. updatedb
  11. locate vm16
  12. rm -rf /var.....
  13. #启动kvm虚拟系统管理器
  14. sudo virt-manager
  • 虚拟化的三种网络访问方式
    (1). 虚拟网络’default’: NAT(默认方式,支持虚拟机上网但不支持互相访问)
    (2). 主机设备eth0(桥接’br0’): bridge方式,使得虚拟机成为网络中具有独立IP的主机,需要在宿主机网络上建立一个桥接器
    (3). 主机设备eth0(根据实际情况而定): macvtap(支持互访)
  • Bridge桥接网络原理介绍
    Bridge 将虚拟机桥接到host机器的网卡上,guest和host机器都通过bridge上网.对外不同的ip
    1. 使得虚拟机成为网络中具有独立IP的主机
    2. 桥接网络(物理设备共享)是把一个物理设备复制到一台虚拟机上。
    3. 桥网的基本原理是创建一个桥接接口br0,然后在物理网卡和虚拟网络接口之间传递数据。
    4. 要被配置的物理网卡是可以工作并且是可以被外部网络访问的网卡,在ifconfig下是有物理ip的,比如eth0网卡,配置完后,在ifconfig下,host的eth0网卡的ip地址会消失不见,而新出现的br0中会出现和之前eth0相同的ip。这个不影响host上网
  • .img和.iso压缩文件的关系
    都是光盘的镜像文件,ISO可以用虚拟光驱软件来打开.IMG可以用HDCOPY或者DAEMON软件。其使用效果都是一样的.但是不同的虚拟光驱它所使用的镜象包扩展名也不一样的,所以你要压缩光盘的时候,必须要针对你所使用的虚拟光驱软件来做.ISO是比较通用的光盘镜象模式,但是往往有一些虚拟光驱不认这种格式