第二十四、二十五周微职位

简介:

1、虚拟化技术的实现方式有哪些?虚拟化技术分哪些类?
现在市场上最常见的虚拟化软件有VMWare workstation(VMWare)、VirtualBox(Oracle)、Hyper-V(Microsoft)、KVM(Redhat)、Xen等,这些软件统称之为VMM(Virtual Machine Monitor),使用不同的虚拟化实现。而这些虚拟化实现的方式可以分为:
1)全虚拟化:也成为原始虚拟化技术,该模型使用虚拟机协调guest操作系统和原始硬件,VMM在guest操作系统和裸硬件之间用于工作协调,一些受保护指令必须由Hypervisor(VMM 虚拟机管理程序)来捕获处理。既VMM会为GuestOS抽象模拟出它所需要的包括CPU、磁盘、内存、网卡、显卡等抽象硬件资源,所以全虚拟化的GuestOS并不会知道自己其实是一台虚拟机。全虚拟化的运行速度要快于硬件模拟,但是性能方面不如裸机,因为Hypervisor需要占用一些资源。典型的全虚拟化软件有:VMWare、Hyper-V、KVM-x86(复杂指令集)。
全虚拟化的两种实现方式: 1、基于二进制翻译的全虚拟化;2、基于扫描和修补的全虚拟化。

2)半虚拟化:是另一种类似于全虚拟化的技术,它使用Hypervisor分享存取底层的硬件,但是它的guest操作系统集成了虚拟化方面的代码。该方法无需重新编译或引起陷阱,因为操作系统自身能够与虚拟进程进行很好的协作。典型的半虚拟化软件有:Xen、KVM-PowerPC(简易指令集)半虚拟化除了修改内核外还有另外一种实现方法–在每一个GuestOS中安装半虚拟化软件:VMTools、RHEVTools。
半虚拟化需要guest操作系统做一些修改,使guest操作系统意识到自己是处于虚拟化环境的,但是半虚拟化提供了与原操作系统相近的性能。

虚拟化技术分类:
1) 主机虚拟化:
完全虚拟化:vmare workstation,kvm,xen(hvm)
半虚拟化:xen,uml
模拟:qemu
2)用户空间虚拟化(容器):
lxc,openvz,Solaris Containers,FreeBSD jails
3)库虚拟化:WINE Cywin
4)应用程序虚拟化 :jvm,pvm
kvm工具来实现虚拟化系统的部署:
1.先关闭防火墙和selinux:systemctl stop iptables.service vim /etc/sysconfig/selinux 文件里改成SELINUX=disabled
2.检查CPU虚拟化支持,如果有vmx 或者svm就说明支持VT;如果没有任何的输出,说明你的cpu不支持,将无法使用KVM虚拟机。命令:grep -E 'vmx|svm' /proc/cpuinfo
3.确保BIOS里开启VT: Intel(R) Virtualization Tech [Enabled] 使用如下命令:
[root@localhost ~]# lsmod |grep kvm
kvm_intel 162153 0
kvm 525259 1 kvm_intel
[root@localhost ~]# modprobe kvm-intel
4.启动libvirtd:
[root@localhost ~]# systemctl start libvirtd;systemctl enable libvirtd
[root@localhost ~]# systemctl list-unit-files|grep libvirtd
libvirtd.service enabled
libvirtd.socket static 
5.使用桥接网络,虚拟机即可与其他机器互相访问。 1.复制ifcfg-em1 为 ifcfg-br0,并将ifcfg-br0改为如下配置
第二十四、二十五周微职位
6.重启网络:service network restart
7.安装kvm
[root@localhost ~]# yum install qemu-kvm libvirt libguestfs-tools virt-install virt-manager libvirt-python bridge-utils -y
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile

  • base: mirrors.cn99.com
  • extras: mirrors.cn99.com
  • updates: mirrors.aliyun.com
    Package 10:qemu-kvm-1.5.3-105.el7_2.7.x86_64 already installed and latest version
    Package libvirt-1.2.17-13.el7_2.5.x86_64 already installed and latest version
    Package virt-install-1.2.1-8.el7.noarch already installed and latest version
    Package virt-manager-1.2.1-8.el7.noarch already installed and latest version
    Nothing to do
    qemu-kvm 主要的KVM程序包kvm相关安装包及其作用

python-virtinst 创建虚拟机所需要的命令行工具和程序库

virt-manager GUI虚拟机管理工具

virt-top 虚拟机统计命令

virt-viewer GUI连接程序,连接到已配置好的虚拟机

libvirt C语言工具包,提供libvirt服务

libvirt-client 为虚拟客户机提供的C语言工具包

virt-install 基于libvirt服务的虚拟机创建命令

bridge-utils 创建和管理桥接设备的工具

8.安装x-windows,使用图形化界面管理虚拟机
~]# yum groupinstall "X Window System" -y
9.创建vm:~]# mkdir -pv /var/kvm/images 
virt-install \
--network bridge:br0 \
--name vm1 \
--ram=1024 \
--vcpus=1 \
--disk path=/var/kvm/images/vm1.img,size=10 \
--graphics none \
--location 'http://ftp.iij.ad.jp/pub/linux/centos/7/os/x86_64/' \
--extra-args="console=tty0 console=ttyS0,115200"
#详细每个参数的意义可以查看扩展资料
#安装过程会让你选择textmode 还是vnc,选择textmode继续安装吧
#如果网络会有问题的话,尽量选择用--cdrom /path/to/centos7.iso

xen工具来实现虚拟化系统的部署
环境准备同kvm
1.开始安装:
yum -y install centos-release-xen
sed -i -e "s/enabled=1/enabled=0/g" /etc/yum.repos.d/CentOS-Xen.repo
yum --enablerepo=centos-virt-xen -y update kernel
yum --enablerepo=centos-virt-xen -y install xen
vi /etc/default/grub
GRUB_CMDLINE_XEN_DEFAULT="dom0_mem=4096M,max:4096M cpuinfo com1=115200,8n1 .....
/bin/grub-bootxen.sh
reboot
以下步奏跟KVM一样。




      本文转自xinrenbaodao  51CTO博客,原文链接:http://blog.51cto.com/11832904/2044155,如需转载请自行联系原作者






相关文章
|
消息中间件 NoSQL Java
总结:第一章:从入门到入职拿到过万月薪我需要这些技能(400多篇博文系统归类)P5级
总结:第一章:从入门到入职拿到过万月薪我需要这些技能(400多篇博文系统归类)P5级
|
消息中间件 移动开发 安全
移动开发者升职加薪的8项技能,写给正在求职的安卓开发
移动开发者升职加薪的8项技能,写给正在求职的安卓开发
移动开发者升职加薪的8项技能,写给正在求职的安卓开发
|
Spring Java
公司不能把笔记导出去真操蛋
只能曲线了,此为个人需要用材料笔记,仅供参考 2018年9月1日10:37:05 spring boot 自动配置和启动流程参考文章自动加载自动加载及启动步骤
893 0
|
程序员 持续交付 运维
【聚能聊有奖话题】程序员、测试员、项目经理,你们有freestyle吗?
近日云效公共云版本正式进入商业化服务阶段。 云效是一站式企业协同研发云,支持公共云、专有云和混合云三种模式下的大规模团队的项目管理和协同研发,它为应用项目研发全周期(需求->开发->测试->发布->运维->运营)提供高效的工具化支撑,落地实现敏捷研发、流式实施交付和分层自动化等先进理念,从而助力企业产品快速创新迭代和研发效能升级。
1335 0
|
存储 消息中间件 NoSQL
|
关系型数据库 API 数据库
|
Web App开发 分布式计算 网络安全