第 四 十 四 天:虚 拟 化 简 介 - 创 建

小Q:没有一件工作是旷日持久的,除了那件你不敢拌着手进行的工作。    — 波德莱尔

投了不少简历了,只收到一个回信让去面一下试,唉.......所以这几天就一直在复习了,但是一直看

书有的时候也有点看不下去,所以找点高效的事情做,来学学虚拟化吧,跟随潮流技术吧,多加一个技能;只是我电脑级别太低了,又没有钱买一个,没法操作,是个缺憾,等我挣了工资第一件事要有个属于自己不错的电脑。

----------------------------------------简介----------------------------------------

虚拟化:

是指通过虚拟化技术将一台物理计算机虚拟为多台逻辑计算机。每个逻辑计算机可运行不同的操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率。

目的:节省企业成本,使硬件资源利用率最大化;比如说我们有一个服务有时候访问量非常大,有时

访问量非常小,不管大小我们都要给他分配一台服务器,这就造成了一定的资源浪费,而虚拟

化技术正好解决了这类问题;

构造:软件级别:硬件模拟器qemu

硬件级别:VMM实现硬件分配和管理,OS即运行在建好的VM之上

OS级别:openvz实现虚拟0S与宿主机0S共享,可模拟上千虚拟机

以硬件资源调用模式分类(扩http://blog.chinaunix.net/uid-11231963-id-2150291.html )

半虚拟化:宿主机(母机)和客户机(子机)都需要更改操作系统内核,是客户机知道宿主机的存在

,两者协同合作;(实现技术有xen)

全虚拟化:他为客户机提供了完整硬件资源,独立操作,不需要更改母机的内核(实现技术kvm和xen

,但如今这种区分越来越不明显了,KMware就是KVM技术实现的)

目前有两款开源免费的虚拟化软件KVM和Xen,两者区别如下:

KVM:支持全虚拟化;只占用内核一部分;需要cpu支持虚拟化;08年之后被RedHat收购;

Xen:支持半全虚拟化;完全取代内核;不管cpu是否支持虚拟化;归属于ctrix有商业版;发行早;

因为我学的是centos,所以我就学学跟他一个公司的KVM吧,虽然是后起之秀,好多功能比不上,但是隶属于RedHat,会越来越优秀的;

KVM架构:

KVM驱动:作为Linux内核的一部分,负责创建虚拟机,内存分配,vcpu的运行和寄存器的读写;

Qemu:用于模拟用户组件,提供I/O设备模型,访问外设,取用的别人开发的开源软件;

Libvirt/Virsh:Qemu的辅助工具,提供了多语言接口的API,为各种虚拟化技术提供了一种可靠的编程接口,而其还支持Xen;另外还自带一套Virsh命令,方便简洁;

Virt manage:用Python编写的虚拟机管理图形界面,安装虚拟机,利用Libvirt的API实现;

------------------------------------创建虚拟机-----------------------------------

这个实验,需要我们的cpu支持虚拟化,有的机器支持但是并未在bios开启,这个需要事先开启。

1. vmware安装centos6.6 64位 (略)

其中有几个注意的地方:

a. 内存给2g

b. 磁盘给50g, 或者再单独分一个磁盘,用来存储虚拟机文件

c. 最关键的一步,在创建虚拟机时,cpu是需要配置一下虚拟化的如图

2.  安装kvm前的准备工作

a. 清除iptables规则

service iptables stop; service iptables save

b. 关闭selinux

sed -i ‘s/SELINUX=enforcing/SELINUX=disabled/‘ /etc/selinux/config

setenforce 0

3. 开始安装kvm

a. 检查你的系统是否支持虚拟化

grep -Ei ‘vmx|svm‘ /proc/cpuinfo

如果有输出内容,则支持,其中intel cpu支持会有vmx / amd cpu支持会有svm

b. 通过yum安装虚拟化的软件包

yum install -y kvm virt-*  libvirt  bridge-utils qemu-img

说明:

kvm:软件包中含有KVM内核模块,它在默认linux内核中提供kvm管理程序

libvirts:安装虚拟机管理工具,使用virsh等命令来管理和控制虚拟机。

bridge-utils:设置网络网卡桥接。

virt-*:创建、克隆虚拟机命令,以及图形化管理工具virt-manager

qemu-img:安装qemu组件,使用qemu命令来创建磁盘等。

c. 检查kvm模块是否加载

lsmod |grep kvm

正常应该是:

kvm_intel              55496  3

kvm                   337772  1 kvm_intel

如果没有,需要执行

modprobe kvm-intel

还没有就重启一下试试

d. 配置网卡

cd /etc/sysconfig/network-scripts/

cp ifcfg-eth0 ifcfg-br0

分别编辑eth0和br0

#ifcfg-eth0改成如下:
DEVICE=eth0
HWADDR=00:0C:29:55:A7:0A
TYPE=Ethernet
UUID=2be47d79-2a68-4b65-a9ce-6a2df93759c6
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
BRIDGE=br0
#ifcfg-br0改成如下:
DEVICE=br0
################################################################
#HWADDR=00:0C:29:55:A7:0A
TYPE=Bridge
#UUID=2be47d79-2a68-4b65-a9ce-6a2df93759c6
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=192.168.11.17
NETMASK=255.255.255.0
GATEWAY=192.168.11.1
DNS1=202.106.0.20

说明: 我的虚拟机是桥接模式,所以设置br0的ip和我的真机同样的网段,包括网关也是我路由器的ip,大家可以根据自己的环境去配置,目的是为了让虚拟机可以上网。

/etc/init.d/network restart  查看网卡如下:

br0       Link encap:Ethernet  HWaddr 00:0C:29:55:A7:0A
          inet addr:192.168.11.17  Bcast:192.168.11.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe55:a70a/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:141326 errors:0 dropped:0 overruns:0 frame:0
          TX packets:90931 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:456024940 (434.8 MiB)  TX bytes:10933593 (10.4 MiB)
eth0      Link encap:Ethernet  HWaddr 00:0C:29:55:A7:0A
          inet6 addr: fe80::20c:29ff:fe55:a70a/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:341978 errors:0 dropped:0 overruns:0 frame:0
          TX packets:90946 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:468848861 (447.1 MiB)  TX bytes:10934699 (10.4 MiB)
lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)
virbr0    Link encap:Ethernet  HWaddr 52:54:00:14:EF:D5
          inet addr:192.168.122.1  Bcast:192.168.122.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

e. 启动或重启libvirtd服务和messagebus 服务

/etc/init.d/libvirtd start

/etc/init.d/messagebus restart

此时可以查看网络接口列表:brctl show 结果如下

bridge name     bridge id               STP enabled     interfaces
br0             8000.000c2955a70a       no              eth0
virbr0          8000.52540014efd5       yes             virbr0-nic

4. 创建虚拟机

mkdir /data/   //创建一个存储虚拟机虚拟磁盘的目录,该目录所在分区必须足够大

virt-install --name  111 --ram 512 --disk path=/data/111.img,size=30 --vcpus 1 --os-type linux --os-variant rhel6 --network bridge=br0 --graphics none --console pty,target_type=serial --location ‘http://mirrors.163.com/centos/6.7/os/i386/‘ --extra-args ‘console=ttyS0,115200n8 serial‘

说明:

--name  指定虚拟机的名字

--ram 指定内存分配多少

--disk path 指定虚拟磁盘放到哪里,size=30 指定磁盘大小为30G,这样磁盘文件格式为raw,raw格式不能做快照,后面有说明,需要转换为qcow2格式,如果要使用qcow2格式的虚拟磁盘,需要事先创建qcow2格式的虚拟磁盘。 参考  http://www.361way.com/kvm-qcow2-preallocation-metadata/3354.html   示例:qemu-img create -f qcow2 -o preallocation=metadata  /data/test02.img 7G;  --disk path=/data/test02.img,format=qcow2,size=7,bus=virtio

--vcpus 指定分配cpu几个

--os-type 指定系统类型为linux

--os-variant 指定系统版本

--network  指定网络类型

--graphics 指定安装通过哪种类型,可以是vnc,也可以没有图形,在这里我们没有使用图形直接使

用文本方式

--console 指定控制台类型

--location 指定安装介质地址,可以是网络地址,也可以是本地的一个绝对路径,如果是绝对路径,那么后面还需要指定一个安装介质,比如NFS,假如虚拟机设置ip后,不能连外网,那么就会提示让我们选择安装途径:

--extra-args 设定内核参数

┌───┤ Installation Method ├───┐

│                                     │

│ What type of media contains         │

│ the installation image?             │

│                                     │

│        Local CD/DVD                 │

│        Hard drive                   │

│        NFS directory                │

│        URL                          │

│                                     │

│   ┌────┐       ┌────── │

│   │ OK    │       │ Back     │  │

│   └────┘       └────── │

│                                     │

│                                     │

└───────────────────

我在这里选择NFS,设置参数如下:

┌────────────────┤ NFS Setup ├─────────

│ Please enter the server and NFSv3 path to your CentOS installation   │

│ image and optionally additional NFS mount options.                   │

│                                                                      │

│       NFS server name:              172.7.15.3______________         │

│       CentOS directory:             /mnt/images/install.img_         │

│       NFS mount options (optional): ro______________________         │

当按下回车后,稍等几秒钟就可以看到安装提示了。

开始安装......

搜索文件 .treeinfo......                             |  720 B     00:00 ...

搜索文件 vmlinuz......                               | 7.7 MB     00:02 ...

搜索文件 initrd.img......                            |  63 MB     00:23 ...

创建存储文件 centos6.6_1.img                       |  30 GB     00:00

创建域......                                          |    0 B     00:00

连接到域 centos6.6_1

Escape character is ^]

然后就是我们非常熟悉的OK or  Next 了 ,只不过这个过程是文本模式,如果想使用图形,只能开启vnc啦。

最后安装完,reboot就进入刚刚创建的虚拟机了。要想退回到宿主机,ctrl  ] 即可。

virsh list 可以列出当前的子机列表。

virsh console centos6.6_1  可以进入指定的子机

时间: 2025-01-16 09:47:59

第 四 十 四 天:虚 拟 化 简 介 - 创 建的相关文章

第四十四章

第四十四章1 听罗博士讲述名人的烦恼 名与身孰亲? 名气与身体哪个更重要? 名气固然是有用的,然而不能因此放弃身体. 各位朋友大家好,今天我们接着来聊<道德经>.我们来看看老子老先生带给我们什么样的人生启发了. 今天聊第四十四章,这是新的一章了,这一章实际跟我们的人生真是有很大的关系了,因为我这个音频,除了在我微信公众号刊出之外,还在喜马拉雅播出,喜马拉雅的编辑曾经跟我说:“罗老师您最近能不能讲讲养生的内容啊?”我接下来会给大家讲中医的内容的,但是您说我讲的<道德经>就不是养生吗?

NeHe OpenGL教程 第四十四课:3D光晕

转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线教程的编写,以及yarn的翻译整理表示感谢. NeHe OpenGL第四十四课:3D光晕 3D 光晕 当镜头对准太阳的时候就会出现这种效果,模拟它非常的简单,一点数学和纹理贴图就够了.好好看看吧. 大家好,欢迎来到新的一课,在这一课中我们将扩展glCamera类,来实现镜头光晕的效果.在日常生活中,

QT开发(四十四)——流方法解析XML

QT开发(四十四)--流方法解析XML 一.流方法解析XML简介 QT 4.3开始,QT引入了两个新的类来读取和写入XML文档:QXmlStreamReader和QXmlStreamWriter. QXmlStreamReader类提供了一个快速的解析器通过一个简单的流API来读取良构的XML文档,是作为QT的SAX解析器的替代者出现的,比SAX解析器更快更方便.    QXmlStreamReader可以从QIODevice或QByteArray中读取数据.QXmlStreamReader以一

ActionScript3游戏中的图像编程(连载四十四,第3章开始)

3.1 Flash简单滤镜真相大揭秘 上一章,我们用Flash的滤镜仅仅模拟了Photoshop里面的两个简单样式(当然只是我们的参数设置得比较简单,Photoshop样式远比我们想象中的复杂),就已经困难重重,一波三折了,而且效果还不如Photoshop的细致.那么,到底是什么原因导致Flash的简单滤镜如此受限?Flash简单滤镜是如何实现的? 进入本节之前,先明确下简单滤镜的概念,在ActionScript中,滤镜可以分为两大类,简单滤镜和复杂滤镜,前者指可以通过Flash IDE直接设置

【Unity 3D】学习笔记四十四:路径渲染

路径渲染 路径渲染属于特效渲染组件,用于跟随运动中的游戏对象.首先在hierarchy视图中,创建一个球体.然后在菜单导航栏中选择component--effects--trial renderer即可将路径渲染组件添加至该球体对象中. cast shadows:显示阴影效果. receive shadows:接受阴影效果. materials:材质. size:渲染的材质数量,可添加或删除. element 0:渲染材质文件. use light probes:是否使用光线探头. light

Android项目实战(四十四):Zxing二维码切换横屏扫描

原文:Android项目实战(四十四):Zxing二维码切换横屏扫描 Demo链接 默认是竖屏扫描,但是当我们在清单文件中配置横屏显示的时候: <activity android:name=".CaptureActivity" android:screenOrientation="landscape" android:theme="@android:style/Theme.NoTitleBar.Fullscreen" /> 这时候扫描

“全栈2019”Java第四十四章:继承

难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第四十四章:继承 下一章 "全栈2019"Java第四十五章:super关键字 学习小组 加入同步学习小组,共同交流与进步. 方式一:关注头条号Gorhaf,私信"Java学习小组". 方式二:关注公众号Gorhaf,回复"Java学习小组". 全栈工

【WPF学习】第四十四章 图画

原文:[WPF学习]第四十四章 图画 通过上一章的学习,Geometry抽象类表示形状或路径.Drawing抽象类扮演了互补的角色,它表示2D图画(Drawing)--换句话说,它包含了显示矢量图像或位图需要的所有信息. 尽管有几类画图类,但只有GeometryDrawing类能使用已经学习过的几何图形.它增加了决定如何绘制图形的画笔和填充细节.可将GeometryDrawing对象视为矢量插图中的形状.例如,可将标准的窗口元文件格式(.wmf)转换成准备插入用户界面的GeometryDrawi

程序员的奋斗史(四十四)——大学断代史(八)——大学的友谊

文/温国兵 我不是一个善于表达的人,但很庆幸大学里结实了几个知己. 原本我是其他寝室的,缘分使然,让我和现在的室友相聚.和好友A.好友B.好友C之间发生了太多太多,以至于太多回忆从脑海中隐隐浮现.A在我的正前方,无数个夜晚不知道他在被窝里做些什么,我睡了很久还依稀可以听见他的声音.大学和A同学谈得最多,每次都是相当长的时间,在我的心里,一直把他当做大哥.每一次谈话都从中收获颇丰,增长不少见识.也是A同学让我变得比以前开朗.同一件事情,他比较乐观,我比较悲观:他看到最多的是希望,我看到最多的是绝望