虚拟化之KVM(上)

一:传统的物理机部署方案、虚拟化与云计算定义:

服务器选型及采购—IDC选择及上架-系统选择及安装–应用规划及部署–域名选择及注册–DNS映射–外网访问:

工信部备案-公安部备案–ICP备案(电子商务网站–>ICP证经营性ICP备案),游戏公司文化部(文网文)备案等,在备案没有成功之前网站是不能上线访问的,论坛BBS有BBS公告备案是备案的前置审批,没有的话备案不成功,还要在公安局系统备案,另外域名接入到一个地方比如机房还要做接入备案,备案在个人名下的备案不能直接转公司,个人注销后网站属于未备案状态随时可能会被封,域名备案一般可以找代理,因为过程比较复杂:

传统数据中心面临的问题:

服务器资源利用率低下,CPU、内存等不能共享

资源分配不合理

初始化成本高

自动化能力差

集群环境需要大量的服务器主机

1.1:云计算的定义

云计算是一种交付模式

云计算必须通过网络使用

支持弹性横向扩展、按需付费和快速扩展

无需关心基础设置,服务器硬件、存储、机房安全、硬件监控、底层数据安全等无需考虑

1.2:云计算的概念与分类:

云计算是概念最早是由Google 前首席执行官埃里克?施密特(Eric Schmidt)在2006 年8 月9 日的搜索引擎大会上首次提出的一种构想,而“云计算”就是这种构想的代名词,云计算以虚拟化为基础,以网络为中心,为用户提供安全、快速、便捷的数据存储和网络计算服务,包括所需要的硬件、平台、软件及服务等资源,而提供资源的网络就被称为“云”。

公有云:比如aws、阿里云以及azure、金山云、腾讯云等都属于公有云,每个人都可以付费使用,不需要自己关心底层硬件,但是数据安全需要考利。

私有云:在自己公司内部或IDC自建Openstack、VMware等环境

混合云:临时需求使用公有云,但是主要业务放在自己的私有云,即自己的私有云的部分业务和公有云有交接,这部分称为混合云

1.3:云计算的分层:

1.4:虚拟化的分类:

服务器虚拟化-虚拟服务器

桌面虚拟化-瘦客户机连接win7 实现普通办公

存储虚拟化-SAN(基于磁盘)/NAS(NFS/Samba)/GlusterFS

应用虚拟化-将办公软件虚拟化,最典型的就是office

网络虚拟化-SDN

1.5:KVM

kmv是一种技术,云计算是一种模式,虚拟化是利用相应的技术方法在一台物理机器上将其按照不同的需求划分成多个相同或者不同的虚拟操作系统,并且各个虚拟系统可以同时运行,互不干扰,其中任何一个虚拟系统的损坏都不影响同一物理服务器上的其他虚拟系统。

二:虚拟化技术之KVM:

Kernel-based Virtual Machine的简称,是一个开源的系统虚拟化模块,自Linux 2.6.20之后集成在Linux的各个主要发行版本中。它使用Linux自身的调度器进行管理,所以相对于Xen,其核心源码很少。KVM目前已成为学术界的主流VMM之一。
KVM的虚拟化需要硬件支持(如Intel VT技术或者AMD V技术)。是基于硬件的完全虚拟化。而Xen早期则是基于软件模拟的Para-Virtualization,新版本则是基于硬件支持的完全虚拟化。但Xen本身有自己的进程调度器,存储管理模块等,所以代码较为庞大。广为流传的商业系统虚拟化软件VMware ESX系列是基于软件模拟的Full-Virtualization。

IBM,文档:http://www.ibm.com/developerworks/cn/linux/l-using-kvm/

lxd容器虚拟化: https://linuxcontainers.org/lxd/introduction/

qume是软件虚拟化,即使用软件完全模拟出一个具备CPU/内存/和硬盘的等设备的服务器,KVM是全虚拟化,Xen是半虚拟化,KVM在部分设备也支持半虚拟化

2.1:环境准备:

2:2.1:确认CPU已经支持虚拟化,intel的CPU虚拟化技术交vmx,AMD的CPU交svm:

[[email protected] ~]# grep -E   "vmx|svm" /proc/cpuinfo
flags        : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts mmx fxsr sse sse2 ss ht syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts nopl xtopology tsc_reliable nonstop_tsc aperfmperf pni pclmulqdq vmx ssse3 cx16 pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm ida arat epb pln pts dtherm tpr_shadow vnmi ept vpid fsgsbase tsc_adjust smep

2.2.3:启动libvirtsd并设置为开机启动,librirtd会创建一个桥接的网卡virbr0而且IP地址是192.168.122.1:

[[email protected] ~]# systemctl  start libvirtd
[[email protected] ~]# systemctl  enable  libvirtd
[[email protected] ~]# ifconfig  virbr0
virbr0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255
        ether 52:54:00:cb:ca:b0  txqueuelen 0  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

2.2.4:为虚拟机分配IP地址的服务:

[[email protected] ~]# ps -aux | grep dns
nobody     2877  0.0  0.0  15552   888 ?        S    13:06   0:00 /sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/usr/libexec/libvirt_leaseshelper
root       2878  0.0  0.0  15524   180 ?        S    13:06   0:00 /sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/usr/libexec/libvirt_leaseshelper
root       4546  0.0  0.0 112664   980 pts/0    S+   13:29   0:00 grep --color=auto dns

2.2.5:创建磁盘(虚拟机映像文件):

[[email protected] ~]# qemu-img create -f qcow2 /opt/CentOS-7-x86_64.qcow2 10G #创建一个格式为qcow2大小为10G的裸磁盘
Formatting ‘/opt/CentOS-7-x86_64.qcow2‘, fmt=qcow2 size=10737418240 

2.2.6:开始安装:

[[email protected] ~]# virt-install  --virt-type kvm --name CentOS-7-x86_64 --ram 1024 --cdrom=/opt/CentOS-7-x86_64-DVD-1511.iso --disk path=/opt/CentOS-7-x86_64.qcow2  --network bridge=br0 --graphics  vnc,listen=0.0.0.0 --noautoconsole

开始安装......
创建域......                                                                                                                       |    0 B  00:00:01
域安装仍在进行。您可以重新连接
到控制台以便完成安装进程。

#virsh-install命令帮助:
[[email protected]-node1 ~]# virt-install  --help
usage: virt-install --name NAME --ram RAM STORAGE INSTALL [options]

使用指定安装介质新建虚拟机。

optional arguments:
  -h, --help            show this help message and exit
  --version             show program‘s version number and exit
  --connect URI         使用 libvirt URI 连接到 hypervisor

通用选项:
  -n NAME, --name NAME  客户端事件名称
  --memory MEMORY       配置虚拟机内存分配。例如:
                        --memory 1024 (in MiB)
                        --memory 512,maxmemory=1024
  --vcpus VCPUS         为虚拟机配置的 vcpus 数。例如:
                        --vcpus 5
                        --vcpus 5,maxcpus=10,cpuset=1-4,6,8
                        --vcpus sockets=2,cores=4,threads=2,
  --cpu CPU             CPU 型号及功能。例如:
                        --cpu coreduo,+x2apic
                        --cpu host
  --metadata METADATA   配置虚拟机元数据。例如:
                        --metadata name=foo,title="My pretty title",uuid=...
                        --metadata description="My nice long description"

安装方法选项:
  --cdrom CDROM         光驱安装介质
  -l LOCATION, --location LOCATION
                        安装源(例如:nfs:host:/path、http://host/path
                        ftp://host/path)
  --pxe                 使用 PXE 协议从网络引导
  --import              在磁盘映像中构建虚拟机
  --livecd              将光驱介质视为 Live CD
  -x EXTRA_ARGS, --extra-args EXTRA_ARGS
                        附加到使用 --location 引导的内核的参数
  --initrd-inject INITRD_INJECT
                        使用 --location 为 initrd 的 root
                        添加给定文件
  --os-variant DISTRO_VARIANT
                        在其中安装 OS 变体的虚拟机,比如
                        ‘fedora18‘、‘rhel6‘、‘winxp‘ 等等。
  --boot BOOT           配置虚拟机引导设置。例如:
                        --boot hd,cdrom,menu=on
                        --boot init=/sbin/init (for containers)
  --idmap IDMAP         为 LXC 容器启用用户名称空间。例如:
                        --idmap uid_start=0,uid_target=1000,uid_count=10

设备选项:
  --disk DISK           使用不同选项指定存储。例如:
                        --disk size=10 (new 10GiB image in default location)
                        --disk /my/existing/disk,cache=none
                        --disk device=cdrom,bus=scsi
                        --disk=?
  -w NETWORK, --network NETWORK
                        配置虚拟机网络接口。例如:
                        --network bridge=mybr0
                        --network network=my_libvirt_virtual_net
                        --network network=mynet,model=virtio,mac=00:11...
                        --network none
                        --network help
  --graphics GRAPHICS   配置虚拟机显示设置。例如:
                        --graphics vnc
                        --graphics spice,port=5901,tlsport=5902
                        --graphics none
                        --graphics vnc,password=foobar,port=5910,keymap=ja
  --controller CONTROLLER
                        配置虚拟机控制程序设备。例如:
                        --controller type=usb,model=ich9-ehci1
  --input INPUT         配置虚拟机输入设备。例如:
                        --input tablet
                        --input keyboard,bus=usb
  --serial SERIAL       配置虚拟机串口设备
  --parallel PARALLEL   配置虚拟机并口设备
  --channel CHANNEL     配置虚拟机沟通频道
  --console CONSOLE     配置虚拟机与主机之间的文本控制台连接
  --hostdev HOSTDEV     将物理 USB/PCI/etc
                        主机设备配置为与虚拟机共享
  --filesystem FILESYSTEM
                        将主机目录传递给虚拟机。例如:
                        --filesystem /my/source/dir,/dir/in/guest
                        --filesystem template_name,/,type=template
  --sound [SOUND]       配置虚拟机声音设备模拟
  --watchdog WATCHDOG   配置虚拟机 watchdog 设备
  --video VIDEO         配置虚拟机视频硬件。
  --smartcard SMARTCARD
                        配置虚拟机智能卡设备。例如:
                        --smartcard mode=passthrough
  --redirdev REDIRDEV   配置虚拟机重定向设备。例如:
                        --redirdev usb,type=tcp,server=192.168.1.1:4000
  --memballoon MEMBALLOON
                        配置虚拟机 memballoon 设备。例如:
                        --memballoon model=virtio
  --tpm TPM             配置虚拟机 TPM 设备。例如:
                        --tpm /dev/tpm
  --rng RNG             配置虚拟机 RNG 设备。例如:
                        --rng /dev/random
  --panic PANIC         配置虚拟机 panic 设备。例如:
                        --panic default

虚拟机配置选项:
  --security SECURITY   设定域安全驱动器配置。
  --numatune NUMATUNE   为域进程调整 NUMA 策略。
  --memtune MEMTUNE     为域进程调整内粗策略。
  --blkiotune BLKIOTUNE
                        为域进程调整 blkio 策略。
  --memorybacking MEMORYBACKING
                        为域进程设置内存后备策略。例如:
                        --memorybacking hugepages=on
  --features FEATURES   设置域 <features> XML。例如:
                        --features acpi=off
                        --features apic=on,eoi=on
  --clock CLOCK         设置域 <clock> XML。例如:
                        --clock offset=localtime,rtc_tickpolicy=catchup
  --pm PM               配置 VM 电源管理功能
  --events EVENTS       配置 VM 生命周期管理策略
  --resource RESOURCE   配置 VM 资源分区(cgroups)

虚拟化平台选项:
  -v, --hvm             客户端应该是一个全虚拟客户端
  -p, --paravirt        这个客户端一个是一个半虚拟客户端
  --container           这台虚拟机需要一个容器客户端
  --virt-type HV_TYPE   要使用的管理程序名称(kvm、qemu、xen
                        等等)
  --arch ARCH           模拟的 CPU 构架
  --machine MACHINE     要模拟的机器类型

其它选项:
  --autostart           引导主机时自动启动域。
  --wait WAIT           等待安装完成的分钟数。
  --noautoconsole       不要自动尝试连接到客户端控制台
  --noreboot            完成安装后不要引导虚拟机。
  --print-xml [XMLONLY]
                        输出所生成域 XML,而不是创建虚拟机。
  --dry-run             完成安装步骤,但不要创建设备或者定义
                        虚拟机。
  --check CHECK         启用或禁用验证检查。例如:
                        --check path_in_use=off
                        --check all=off
  -q, --quiet           禁止无错误输出
  -d, --debug           输入故障排除信息

使用 ‘--option=?‘ 或者 ‘--option help‘ 查看可用子选项
有关示例及完整选项语法,请查看 man page。 

2.2.7:通过vnc客户端连接到安装界面,kvm虚拟机的默认端口从5900开始

2.2.8:选择安装centos安装界面:

2.2.9:开始正常安装旅程,以下为给内核传递net.ifnames=0以及biosdevname=0使网卡的命名为eth*,否则为em*:

2.2.10:安装过程中。。。。。。:

2.2.11:安装完成:

2.3:查看正在运行的虚拟机:

[[email protected] ~]# virsh  -help #获取命令帮助
[[email protected]-node1 ~]# virsh  list --all #当前正在运行的所有虚拟机
 Id    名称                         状态
----------------------------------------------------
 2     CentOS-7-x86_64                running
 -     CentOS-x86_64                  关闭
 -     CentOS_x86_64                  关闭
[[email protected]-node1 ~]# virsh  list --help #命令帮助
  OPTIONS
    --inactive       列出不活跃的域
    --all            不活跃和活跃的域列表
    --transient      列出临时域
    --persistent     列出持久域
    --with-snapshot  列出现有快照的域
    --without-snapshot  列出没有快照的域
    --state-running  运行状态的域列表
    --state-paused   列出暂停状态的域
    --state-shutoff  列出关闭状态的域
    --state-other    列出其他状态的域
    --autostart      列出启用 autostart 的域
    --no-autostart   列出禁用 autostart 的域
    --with-managed-save  列出有管理的保存状态的域
    --without-managed-save  列出没有管理的保存状态的域
    --uuid           只列出 uuid
    --name           只列出域名
    --table          列出表格(默认)
    --managed-save   标记有管理的保存状态的域
    --title          show domain title
[[email protected]-node1 ~]# virsh  list  --inactive  #列出关闭的虚拟机

原文地址:https://www.cnblogs.com/yanlinux/p/9892997.html

时间: 2024-10-02 14:14:59

虚拟化之KVM(上)的相关文章

在redhat7上图形化安装kvm,实现在kvm上安装centos7

在redhat7上图形化安装kvm,实现在kvm上安装centos7注意:在redhat7.0上安装kvm,一定要勾选如图选项,必不可少的虚拟化组件进入系统,选择系统工具->虚拟系统管理器选择新建虚拟机选择iso镜像 选择硬盘容量勾上安装前自定义配置 根据需要进行相关配置,点击开始安装 选择语言 选择分区,可以默认分区,也可以自定义分区接受更改设置密码,开始安装最后安装成功 原文地址:http://blog.51cto.com/11293100/2286232

Linux的桌面虚拟化技术KVM(四)——虚拟机镜像格式对比与转换

Linux的桌面虚拟化技术KVM(二)——远程桌面管理 Linux的桌面虚拟化技术KVM(三)——KVM虚拟机克隆和快照 (1).常用镜像格式对比 目前常用虚拟机镜像格式:raw.cow.qcow.qcow2.vmdk. 1)raw raw格式:老牌的镜像格式,用一个字来说就是裸,也就是赤裸裸,你随便dd一个file就模拟了一个raw格式的镜像.由于裸的彻底,性能上来说的话还是不错的.centos6上KVM和XEN默认的格式还是这个格式.centos7以上默认是qcow2 . 裸的好处还有就是简

kvm上的Linux虚拟机使用virtio磁盘

kvm上的Linux虚拟机使用virtio磁盘 系统:centos6.6  64位 网上的文章比较少,怎麽将Linux虚拟机的磁盘改为使用virtio磁盘 因为centos6或以上系统已经包含了virtio驱动,所以不需要再执行下面语句加载内核模块 modprobe virtio virtio_pci virtio_blk virtio_net mkinitrd --with virtio --with virtio_pci --with virtio_blk --with virtio_net

虚拟化技术kvm

一.虚拟化技术kvm原理 kvm是基于内核的虚拟机,负责的是:1.虚拟机的虚拟CPU也就是vCPU 2.对虚拟内存进行管理和调度QEMU-KVM就是通过修改QEMU代码而得出的专门用来创建和管理虚拟机的管理工具,是为了KVM能更好的和内核打交道使用虚拟化技术的QEMU,实现虚拟外设结论:1.KVM本身只关注虚拟机调度和内存管理这两个方面2.外设的任务交给我们上面说的linux 内核或者是QEMU. 所以KVM就是一个轻量级的Hypervisor. kvm架构: 由两个模块来组成:kvm模块和QE

KVM虚拟化之KVM基本管理(二)

KVM虚拟化之KVM管理(二)KVM管理操作 virsh是kvm虚拟机常用的管理工具 1.virsh命令格式:virsh 参数 kvm虚拟机名 2. virsh 常用参数: 查看正在运行的KVM虚拟机 virsh list 查看所有的KVM虚拟机 virsh list --all 开启KVM虚拟机 virsh start centos7 关闭KVM虚拟机 virsh shutdown centos7 拔电源关机(强制关机) virsh destroy centos7 导出配置 virsh dum

KVM上如何让虚拟机支持虚拟化(kvm虚拟化的嵌套)

http://blog.csdn.net/swimming_in_it_/article/details/53320141http://blog.csdn.net/wickedglory/article/details/53264559 首先检查 KVM host(宿主机/母机)上的kvm_intel模块是否打开了嵌套虚拟机功能(默认是开启的):    [email protected]:~# modinfo kvm_intel | grep nested    parm: nested:boo

Linux桌面虚拟化技术KVM介绍及其安装

KVM的简介: KVM,是一个开源的系统虚拟化模块,自Linux 2.6.20之后集成在Linux的各个主要发行版本中.它使 用Linux自身的调度器迚行管理,所以相对亍Xen,其核心源码很少.KVM目前已成为学术界的主流VMM 之一.KVM的虚拟化需要硬件支持(如Intel VT技术戒者 AMD V技术).是基亍硬件的完全虚拟化.而 Xen 早期则是基亍软件模拟的 Para-Virtualization. Linux 内核的虚拟机(Kernel-based Virtual Machine).是

虚拟化之KVM的部署、应用、调优

传统数据中心面临的问题: 资源使用率低 资源分配不均 自动化能力差 云计算介绍: 云计算是一种按使用量付费的模式,这种模式提供可用的.便捷的.按需的网络访问, 进入可配置的计算资源共享池(资源包括网络,服务器,存储,应用软件,服务),这些资源能够被快速提供,只需投入很少的管理工作,或与服务供应商进行很少的交互. tomcat提供几个端口? 全虚拟化:直接使用底层的硬件 比如:KVM 半虚拟化:通过一个中间件,来调用底层的硬件 比如:xen 硬件虚拟化: 软件虚拟化: 应用虚拟化: 一个机器跑八个

Linux虚拟化技术KVM、QEMU与libvirt的关系(转)

说明:个人理解,KVM是内核虚拟化技术,而内核是不能使用在界面上使用的,那么此时QEMU提供了用户级别的使用界面,相互辅助.当然,单独使用QEMU也是可以实现一整套虚拟机,不过QEMU+KVM基本是标配Linux虚拟机管理工具. 一.介绍: 主要分为三个部分.第一部分是虚拟化技术介绍:第二部分是KVM.QEMU与libvirt介绍,第三部分是对网卡的虚拟介绍. 第一部分: 这一部分是对当期存在的虚拟机技术进行简单的总结与讲解,很多是一句而过的.其实每一个技术都可以重新写出一篇内容丰富的博客,但是