热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Ubuntu系统配置KVM虚拟机桥接网络

1.确认硬件支持硬件虚拟化运行egrep(vmx|svm)/proc/cpuinfo如果有显示,则表示支持硬件虚拟化,如果没有显示就是不支持。如果不支持硬件虚拟化,就不能使用KVM了,这时推荐使用Xen。2.确认在BIOS设置中打开了硬件虚拟化支持。3.在物理机上安

1.确认硬件支持硬件虚拟化
  运行
      egrep '(vmx|svm)' /proc/cpuinfo
  如果有显示,则表示支持硬件虚拟化,如果没有显示就是不支持。如果不支持硬件虚拟化,就
  不能使用 KVM 了,这时推荐使用 Xen。

2.确认在 BIOS 设置中打开了硬件虚拟化支持。

3.在物理机上安装 Ubuntu。
    修改主机名
        sudo vi /etc/hostname
        里面就一行,就是主机名。
    分配 IP 地址:
        sudo vi /etc/network/interfaces
    如果是使用的 DHCP 自动分配地址,写入这些内容:
        auto lo
        iface lo inet loopback

        auto eth0 #看好你机器的网卡是不是叫 eth0,ifconfig -a 可以查看
        #网卡可能叫 eth1,eth2,或 wlan0,wlan1(无线网卡)等等
        iface eth0 inet dhcp
    如果是需要手动设置 IP:
        auto lo
        iface lo inet loopback

        auto eth0
        iface eth0 inet static
        address 192.168.1.200 #分配的 IP 地址,自己看着办吧
        netmask 255.255.255.0 #网络掩码
        gateway 192.168.1.1  #网关,使用家用路由上网的就是 路由器
    设置 DNS 服务器地址:
        vi /etc/resolv.conf
    写入:
        nameserver xxx.xxx.xxx.xxx #(DNS 服务器 IP 地址,不知道?
         #10000/100010 会告诉你,或者
         #直接填 8.8.8.8
         #千万别把域名写进去了,要知为什么这样
 #请去研究先有鸡还是先有蛋这个哲学问题)
    配置好后运行
        sudo /etc/init.d/networking restart
    重启网络服务,这个时候注意看看有没有错误提示。
        ping www.gov.cn
    试试,如果显示类似这种:
        64 bytes from 218.8.55.118: icmp_seq=1 ttl=50 time=269 ms
    就代表网络通了(按 CTRL-C 退出)。
4.使用
    sudo apt-get install kvm libvirt-bin virtinst bridge-utils
  安装需要的软件。
  安装 libvirt-bin 时将自动建立一个组 libvirtd,同时会自动把 admin 组中的成员加
  入进来。

5.配置桥接网络
    运行
        sudo vi /etc/network/interfaces
    将文件修改为

        auto lo
        iface lo inet loopback

        auto eth0
        iface eth0 inet manual
          auto br0
        iface br0 inet static #static 可以改成 dhcp,这时
     #就不需要 address,netmask,gateway 这三行了
        bridge_ports eth0 #此处的 eth0 就是上面提到 eth0
        address 192.168.1.200 #分配的 IP 地址,自己看着办吧
        netmask 255.255.255.0 #网络掩码
        gateway 192.168.1.1   #网关,使用家用路由上网的就是 路由器
        bridge_stp off
        bridge_fd 0
        bridge_maxwait 0
    同样运行
        sudo /etc/init.d/networking restart
        ifconfig
    看看是否多出了一项 br0。

4.将用户 hadoop 加入 libvirtd 组。
    sudo adduser hadoop libvirtd
    要生效需要退出重新登录。

5.看看现在运行了几台虚拟机吧。
    virsh -c qemu:///system list
    好像还没有虚拟机。马上建一个?先别急。

6.因为我安装的是服务器版的 Ubuntu,所以需要远程登录的。还需要 vnc 远程访问虚拟机。
  现在要做的就是安装 ssh 服务了。很简单:
      sudo apt-get install openssh-server
  生成密钥
      ssh-keygen  #然后一路回车。会生成一对没有密码保护的 ssh 密钥。
      cd ~/.ssh
      cat id_rsa.pub >>authorized_keys
  将远程登录要用到的私钥复制走:
      插上一个 U 盘
      sudo mkdir /media/sdb1
      sudo mount -t vfat /dev/sdb1 /media/sdb1 #将 U 盘挂载到机器上
      sudo cp ~/.ssh/id_rsa /media/sdb1
  再将此 U 盘插到工作机上,比如,你的笔记本,将 id_rsa 复制到某一个地方(我直接就放在了~)
  这时就可以在工作机上登录服务器了:
      ssh -i ~/id_rsa -l hadoop 192.168.1.200 #两台机器要在同一网段上
# -i 指定证书文件,如果没有这个选项就会使用 ~/.ssh/id_rsa
# -l 指定登录的用户名
  其实现在也可以
      ssh 192.168.1.200
  这样会要求输入要登录的用户名,和这个用户的登录口令,但是这样相对就要不安全一些了。
  现在关闭运行使用口令登录的功能,在服务器上运行:
      sudo vi /etc/ssh/sshd_config
  找到
      #PasswordAuthentication yes
  将它修改为
      PasswordAuthentication no
  然后运行
      sudo /etc/init.d/ssh restart
  重启 ssh 服务。
  现在不能用密码登录了吧? :)    
7.从这一步开始,就可以完全在工作机上操作了(我是这么做的)。
  在工作机上安装 virt-view
      sudo apt-get install virt-viewer

8.查看远程服务器器上运行了几台虚拟机
    virsh -c qemu+ssh://192.168.1.200/system list

9.在远程服务器上安装虚拟机
    virt-install -c qemu+ssh://192.168.1.200/system -n hadoop1
        -r1000 -f hadoop1.img -s10 -c ~/ubuntu-10.04-server-AMD64.iso \
        --vnc --noautoconsole --network bridge=br0

  -n hadoop1 虚拟机的名字
  -r1000 虚拟机使用内存的上限
  -f hadoop1.img 虚拟机使用的虚拟硬盘文件
  -s10 虚拟机虚拟硬盘文件大小的上限
  -c ~/ubuntu-10.04-server-AMD64.iso 用来安装的 iso 文件
  --vnc 开启 vnc 支持,因为需要远程查看
  --noautoconsole 不要自动连接到虚拟机终端
  --network bridge=br0 设置网络为桥接

    virt-viewer -c qemu+ssh://192.168.1.200/system hadoop
   查看 192.168.1.200 上的 hadoop
   就可以盯着安装了。

10.关于 virt-clone
    sudo virt-viewer -c qemu+ssh://192.168.1.200/system \
        -o hadoop -n hadoop1 -f hadoop1.img
   -o hadoop 复制的来源
   -n 新虚拟机的名字
   -f 新虚拟机的硬盘文件
       注意:clone 的虚拟机的网卡的名字不叫原来那一个了
            比如原来叫 eth0,clone 之后,很可能叫 eth1,具体请使用 ifconfig -a
   更多功能请
       man virt-clone

11.关于 virsh
    这里说几个常用的 virsh 功能
    virsh -c qemu+ssh://192.168.1.200/system destroy hadoop
        强行关机
    virsh -c qemu+ssh://192.168.1.200/system undefine hadoop
 在命名空间中取消定义这个虚拟机,基本上就是删除。但是不会删除虚拟硬盘文件
    virsh -c qemu+ssh://192.168.1.200/system start hadoop
        启动 hadoop
    virsh -c qemu+ssh://192.168.1.200/system autostart hadoop
          让 hadoop 在物理机启动时自动启动
      virsh -c qemu+ssh://192.168.1.200/system shutdown hadoop
          正常关机
      更多功能请
           man virsh


推荐阅读
author-avatar
手机用户2502912857
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有