设为首页 收藏本站
查看: 988|回复: 0

[经验分享] Ubuntu下的虚拟化-kvm

[复制链接]

尚未签到

发表于 2018-4-30 07:39:25 | 显示全部楼层 |阅读模式
  虚拟机(VM)是一个运行在虚拟层的计算机,通常被叫做hypervisor。它并不是真是存在的,然而可以像一个真正的计算机一样工作。虚拟机所运行的虚拟层决定了虚拟机的虚拟界面,对于虚拟机上运行的操作系统而言,它们就是对应的网卡,内存,硬盘等。从某种意义上讲,虚拟机让guest操作系统误以为它运行在特定的物理设备上,这些物理设备实际上由虚拟软件模拟,并且虚拟软件负责处理与实际硬件的交互。这被称作硬件模拟。
  虚拟技术中有一个折中处理。有些虚拟软件运行在操作系统层之上,这种虚拟化的灵活性比较差,在本机速度性能比较高。另外一些虚拟软件直接或接近等于运行在硬件(baremetal)上,也就是说该虚拟软件或者是操作系统内核的一部分,或者是作为操作系统运行,在虚拟软件跟物理硬件资源之间没有其他软件层。这种方法速度比较快。
  KVM
  KVM(Kernel-based Virtual Machine)是Linux系统内核的一部分。KVM并不提供硬件模拟,只是提供底层操作。运行KVM,需要处理器支持硬件虚拟化。Intel和AMD都推出了处理器的扩展,用来支持硬件虚拟化,分别为IntelVT-x和AMD-V。
  以下命令查看CPU是否支持硬件虚拟化
  egrep -c '(vmx|svm)' /proc/cpuinfo
  返回值为0说明CPU不支持硬件虚拟化;返回1或更高值说明CPU支持。通常情况,硬件虚拟化扩展是默认不启用的,要通过进入BIOS设置启用。
  以X200为例进行BIOS修改:开机F12->BootMenu-><Enter Setup>->Config->CPU->
  将Intel(R) Virtualization Technology选为Enabled
  Intel(R) VT-d Feature选为Enabled
  以下命令查看处理器是否是64位
  egrep -c ' lm ' /proc/cpuinfo
  返回为0说明CPU不是64位,返回为1或更高值说明是64位。
  查看目前安装的Ubuntu内核是否为64位,使用以下命令
  uname -m
  x86_64说明系统为64-bit kernel,i386,i486, i586 or i686说明Linux内核为32位。
  查看安装的Ubuntu的版本信息:
  cat /etc/lsb-release
  查看Linux内核版本
  cat /proc/version
  安装kvm-ok查看kvm状态
  sudo apt-get install cpu-checker
  在终端输入sudo kvm-ok来检查CPU目前状态。
  当CPU不支持硬件虚拟化时返回:
  INFO:Your CPU does not support KVM extensions
  KVM acceleration can NOT be used
  当CPU支持硬件虚拟化但未启用时返回:
  INFO:Your CPU supports KVM extensions
  INFO:KVM (vmx) is disabled by your BIOS
  HINT:Enter your BIOS setup and enable Virtualization Technology (VT),
  and then hard power off/power on your system
  KVM acceleration can NOT be used
  CPU支持硬件虚拟化且正常启用时返回
  INFO:/dev/kvm does not exist
  HINT: sudo modprobe kvm_intel
  INFO:Your CPU supports KVM extensions
  KVM acceleration can be used
  安装kvm
  sudo apt-get install qemu-kvm libvirt-bin virtinst bridge-utils
  其中qemu-kvm是KVM必须的用户空间组件
  libvirt-bin是与Linux虚拟功能交互的二进制的C工具箱,不仅支持KVM,而且支持XEN,VirtualBox等。
  virtinst是一系列创建VMs的命令行工具
  bridge-utils是用来配置Linux以太网链接的工具集
  此外,可以安装virt-viewer,为VMs提供了一个GUI和VNC的界面;virt-manager,提供了一个管理VMs的GUI。安装后可以在Dash主页找到。
  默认情况下,通过KVM安装的客户操作系统可以使用网络服务,但是对于网络上的其他电脑是不可见的,也就是说不能作为服务器被其他系统访问。默认情况下,VMs的IP地址范围为10.0.2.0/24,而客户操作系统可以通过10.0.2.2来访问主机。如果你想要改变网络设置,使得虚拟机能够被外界访问,那么需要建立网络链接,让它们对网络上的其他系统可见。需要注意的是,使用这种方法,需要通过默认的网络管理器来控制建立的硬件;该方法对有线网络可行,对无线网络不可行。首先安装libcap2-bin。然后需要通过设置cap_net_admin授予QEMU权限管理网络。
  64位系统,通过以下命令设置:
  sudo setcap cap_net_admin=ei /usr/bin/qemu-system-x86_64
  32位系统,通过以下命令设置:
  sudo setcap cap_net_admin=ei /usr/bin/qemu-system-i386
  然后在/etc/network/interfaces添加以下几行,使用DHCP创建一个桥接界面br0:
  auto br0
  iface br0 inet dhcp
  <tab>bridge_portseth 0
  <tab>bridge_stp off
  <tab>bridge_fd 0
  <tab>bridge_maxwait 0
  通过以下命令重启网络:
  sudo /etc/init.d/networking restart
  最后,你需要通过该桥接网络创建客户VMs。用这个新的br0界面手动定义你的客户操作系统,与你在操作系统中通常定义的方式相同。
  通过KVM创建虚拟机有几种方法。其中一种方法是通过vmbuilder。使用命令sudo apt-get install python-vm-builder来安装。Vmbuilder必须的两个参数是虚拟软件名称和将要使用的操作系统名称。vmbuilder功能非常强大,可以通过命令行输入vmbuilderkvm ubuntu --help 来了解。这里的例子基于KVM和Ubuntu12.04 LTS
  sudo vmbuilder kvm ubuntu --suite precise --flavour virtual --arch i386 -o --libvirt qemu:///system --ip 192.168.0.100 --hostname lovelace --bridge br0
  --suite指定了Ubuntu的发行版本,--flavour指定我们想要使用虚拟内核(这是用来建造JeOS image的),--arch说明我们想要创建使用一个32位的机器上,-o要vmbuilder去覆盖前面版本的VM,--libvirt报告本地虚拟环境,增加结果VM到有效机器的列表。
  vmbuilder的功能非常强大,更适合有一定基础的用户。此外,我们可以使用virtinst来进行KVM的使用和配置。virtinst包括了很多个工具,这里我们简单介绍下virt-install和virt-clone,前者用来创建虚拟机;后者用来复制现存的虚拟机。我们可以使用virt-install来实现刚才使用vmbuilder的功能;区别仅仅是参数选项不同。此外virt-install还可以创建包含GUI的桌面image,能被VNC访问。

  sudo virt-install -n hopper -r 512 --disk path=/var/lib/libvirt/images/hopper.img,>  -n hopper定义虚拟机的名字;-r 512指定了虚拟机被分配的内存,单位为M;--disk path=...是虚拟硬盘的路径,可以是一个文件,一个分区,或者是一个逻辑空间。这里我们在/var/lib/libvirt/images目录创建了一个20G的文件名字为hopper.img;-c/dev/cdrom是主机的CD-ROM设备路径,也可以使用一个ISO文件;--accelerate启用内核加速;--connect定义使用的hypervisor;--vnc用VNC虚拟控制台到处客户;--noautoconsole阻止自动链接到虚拟机的控制台;-v创建一个完全虚拟化的客户。
  要复制一个虚拟机,可使用virt-clone
  sudo virt-clone -o hopper -n knuth -f /var/lib/libvirt/images/knuth.img --connect=qemu:///system
  -o hopper定义源虚拟机名;-n knuth定义目的虚拟机名;-f定义新虚拟机使用的文件/分区/逻辑空间的路径;--connect定义使用的hypervisor。
  要打开一个虚拟机,使用命令
  virsh -c qemu:///system start hopper
  要关闭一个虚拟机,使用命令
  virsh -c qemu:///system shutdown hopper
  当虚拟机被安装和运行时,你可以通过配置的IP地址来链接。你也可以使用GUI界面
  virt-view -c qemu:///system hopper
  你可以使用GUI来管理你的虚拟机
  virt-manager -c qemu:///system
  另外常用的虚拟软件有VirtualBox,VMware和Xen。VirtualBox的使用非常简单,可以在Ubuntu软件库下载,也可以从www.virtualbox.org/wiki/Downloads网页直接下载对应版本的最新软件。VMware是付费的企业级的虚拟平台。Ubuntu目前宣布不支持Xen的使用。

运维网声明 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-453813-1-1.html 上篇帖子: Ubuntu14.04 x64 zabbix 3.0 安装 下篇帖子: Ubuntu server 14.04升级16.04
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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