本文共 6394 字,大约阅读时间需要 21 分钟。
介绍
virtualization 资源管理
一台物理机虚拟出多台虚拟机
多个物理机虚拟出一台虚拟机(看应用在哪的情况下)
完全虚拟化
部分虚拟化
硬件辅助(CPU)
系列 | PC/服务器版代表 |
VMware | VMware Workstation、vSphere |
Microsoft | VirtualPC、Hyper-V |
RedHat | KVM、RHEV |
Citrix | Xen |
Oracle | Oracle VM VirtualBox |
KVM/QEMU/LIBVIRTD
KVM是Linux内核的模块,他需要CPU的支持,采用硬件辅助虚拟化技术Intel-VT ,AMD-V,内存的相关如Intel的EPT和AMD的RVI技术
QEMU是一个虚拟化的仿真工具,通过ioctl与内核kvm交互完成对硬件的虚拟化支持
Libvirt是一个对虚拟化管理的接口和工具,提供用户端程序virsh, virt-install, virt-manager ,virt-view与用户交互
必备软件:
qemu-kvm
为 kvm 提供底层仿真支持
libvirt-daemon
libvirtd 守护进程,管理虚拟机
linvirt-client
用户端软件,提供客户端管理命令
libvirt-daemon-driver-qemu
libvirtd 连接 qemu 的驱动
可选功能
virt-install 系统安装工具
virt-manager 图形管理工具
virt-v2v 虚拟机迁移工具
virt-p2v 物理机迁移工具
虚拟化平台的安装
yum -y install qemu-kvm libvirt-daemon libvirt-client libvirt-daemon-driver-qemu
systemctl satrt libvirtd
kvm虚拟机的组成
内核虚拟化模块(KVM)
系统设备仿真(QEMU)
虚拟机管理程序(LIBVIRT)
一个XML文件(虚拟机配置声明文件)
位置 /etc/libvirt/qemu/
一个磁盘镜像文件(虚拟机的硬盘)
位置 /var/lib/libvirt/images
提供管理各虚拟机的命令接口
支持交互式,查看/创建/停止/关闭....
格式:virsh 指控命令 [虚拟机名称] [参数]
virsh nodeinfo 查看KVM节点(服务器)信息
virsh dominfo 虚拟机名称 #查看指定虚拟机信息
list [--all] 列出虚拟机
start | shutdown | reboot 虚拟机启动,停止,重启
destroy 强制停止虚拟机
define | undefine 根据xml文件 创建/删除 虚拟机
console 连接虚拟的
edit 修改虚拟机的配置(和vim差不多)
autostart 设置虚拟机自启
domiflist 查看虚拟机网卡信息
domblklist 查看虚拟机硬盘信息
blockresize --path [磁盘文件绝对路径] --size 50G openstack虚拟机名字 扩展磁盘
------------------------------------------------------------------------------------------------
虚拟网络管理
net-list [--all] 列出虚拟网络
net-start 启动虚拟交换机
net-destroy 强制停止虚拟交换机
net-define 根据xml文件 创建虚拟网络
net-undefine 删除一个虚拟网络设备
net-edit 修改虚拟交换机的配置
net-autostart 设置虚拟交换机机自启动
特点\类型 | RAW | QCOW2 |
KVM默认 | 否 | 是 |
I/O效率 | 高 | >较高 |
占用空间 | 大 | 小 |
压缩 | 不支持 | 支持 |
后端盘复用 | 不支持 | 支持 |
快照 | 不支持 | 支持 |
qemu-img 虚拟机的磁盘管理命令,支持非常多的磁盘格式,例如raw,qcow2,vdi,vmdk等等
create 创建一个磁盘
convert 转换磁盘格式
info 查看磁盘信息
resize 扩展磁盘空间
创建新的镜像盘文件
qemu-img create qcow2格式 /var/lib/libvirt/images/node.img磁盘路径 50G大小
查询镜像盘文件的信息
qemu-img info /var/lib/libvirt/images/node.img磁盘路径
-b 使用后端模板文件
qemu-img create -b 后端模板文件 -f qcow2(磁盘格式) A,img(磁盘文件名)
#后端模板文件可以qemu-img info tedu_node05.img磁盘文件 --->backing file:后端盘文件
base-vm A(虚拟机名称) #真机上克隆虚拟机
virsh start A #启动虚拟机
virsh console A #连接虚拟机
ifconfig
lsblk
df -h #Ctrl + ] 退出虚拟机
virsh domblklist A #查看虚拟机的文件路径
目标 源
------------------------------------------------ vda /var/lib/libvirt/images/A.img
qemu-img info /var/lib/libvirt/images/A.img #复制上面的路径,查看虚拟机磁盘信息
image: /var/lib/libvirt/images/A.img
file format: qcow2 virtual size: 30G (32212254720 bytes) #虚拟机磁盘大小 disk size: 28M cluster_size: 65536 backing file: .node_base.qcow2 (actual path: /var/lib/libvirt/images/.node_base.qcow2) #后端盘 Format specific information: compat: 1.1 lazy refcounts: false
virsh blockresize --path /var/lib/libvirt/images/A.img(磁盘路径) --size 50G A(虚拟机名字) #扩展磁盘
qemu-img info /var/lib/libvirt/images/A.img #查看虚拟机磁盘大小
ssh root@192.168.1.137 #连接虚拟机上看磁盘变化
lsblk
LANG=C #语言改为英文才能分区扩容
growpart /dev/vda 1 #分区扩容,growpart 磁盘 分区序号(这里指第一个分区)
df -h
/dev/vda1 30G 912M 30G 3% /
xfs_growfs / #扩容文件系统(挂载目录)
/sbin/lsmod | grep kvm #输出关于kvm版本的信息则已装入kvm模块
copy on write,写时复制
直接映射原始磁盘的数据内容
当数据有修改要求时,在修改之前自动讲旧数据拷贝存入前端盘后,对前端盘进行修改
原始盘终是只读的
创建xml文件
编辑:virsh edit 虚拟机名
2 <name>C</name> #虚拟机名称
4 <memory unit='KiB'>1488282</memory> #这里指内存大小1G,两项要一致
5 <currentMemory unit='KiB'>1488282</currentMemory>
6 <vcpu placement='static'>2</vcpu> #虚拟的CPU个数
24 <disk type='file' device='disk'>
25 <driver name='qemu' type='qcow2'/> 26 <source file='/var/lib/libvirt/images/A.img'/> #磁盘路径 </disk>37 <interface type='bridge'>
38 <mac address='52:54:00:c0:b0:31'/> 39 <source bridge='vbr'/> #虚拟交换机 40 <model type='virtio'/> </interface>
xml配置文件定义了一个虚拟机的名称,虚拟磁盘,cpu,虚拟交换机,网卡,内存等
默认位置:/etc/libvirt/qemu/虚拟机名.xml
导出xml配置文件
查看:virsh dumpxml 虚拟机名
备份:virsh dumpxml 虚拟机名 > 虚拟机名.xml
实验:创建虚拟机C
cp /var/lib/libvirt/images/.node_base.xml /etc/libvirt/qemu/C.xml 要和虚拟机名一样
cd /var/lib/libvirt/images
qemu-img create -f qcow2 -b .node_base.qcow2 C.img 30G #创建虚拟机vim /etc/libvirt/qemu/C.xml
<name>C</name> <source file='/var/lib/libvirt/images/C.img'/>
virsh define /etc/libvirt/qemu/C.xml #定义xml文件
virsh start C #开启虚拟机
virsh console C #连接
网卡及配置文件
vim /etc/sysconfig/network-scripts/ifcfg-eth0
# Generated by dracut initrd
DEVICE="eth0" #驱动名称, ONBOOT="yes" #开启开机自启 NM_CONTROLLED="no" #不接受NetworkManager控制 TYPE="Ethernet" #类型 BOOTPROTO="dhcp" #协议(dhcp/static/none) PERSISTENT_DHCLIENT="yes"
介绍
• 基于互联网的相关服务的增加、使用和交付模式
• 这种模式提供可用的、便捷的、按需的网络访问, 进入可配置的计算资源共享池 • 这些资源能够被快速提供,只需投入很少的管理工作, 或与服务供应商进行很少的交互 • 通常涉及通过互联网来提供动态易扩展且经常是虚拟 化的资源
IaaS
• IaaS(Infrastructure as a Service),即基础设施即服务 • 提供给消费者的服务是对所有计算基础设施的利用, 包括处理CPU、内存、存储、网络和其它基本的计算 资源,用户能够部署和运行任意软件,包括操作系统 和应用程序 • IaaS通常分为三种用法:公有云、私有云和混合云
PaaS
• PaaS (Platform-as-a-Service),意思是平台即服务 • 以服务器平台或者开发环境作为服务进行提供就成为了PaaS • PaaS运营商所需提供的服务,不仅仅是单纯的基础平台,还针对该平台的技术支持服务,甚至针对该平台而进行的应用系统开发、优化等服务 • 简单地说,PaaS平台是指云环境中的应用基础设施服务,也可以说是中间件即服务
SaaS
• SaaS(Software-as-a-Service)软件即服务,是一种 通过Internet提供软件的模式,厂商将应用软件统一部 署在自己的服务器上,客户可以根据自己实际需求,通 过互联网向厂商定购所需的应用软件服务 • 用户不用再购买软件,而是向提供商租用基于Web的软 件,来管理企业经营活动,不用对软件进行维护,提供 商会全权管理和维护软件,同时也提供软件的离线操作 和本地数据存储
• OpenStack是一个由NASA(美国国家航空航天局)
和Rackspace合作研发并发起的项目 • OpenStack是一套IaaS解决方案 • OpenStack是一个开源的云计算管理平台 • 以Apache许可证为授权
什么是云?
• 对于到底什么是云计算,至少可以找到100种解释 • 现阶段广为接受的是美国国家标准与技术研究院 (NIST)定义: – 云计算是一种按使用量付费的模式,这种模式提供可 用的、便捷的、按需的网络访问, 进入可配置的计算 资源共享池(包括网络,服务器,存储,应用软件, 服务),这些资源能够被快速提供,只需投入少量的 管理工作,或与服务供应商进行很少的交互云计算三大服务模式
知名云服务商
国外:亚马逊云AWS,微软Azure,IBM SCE+
国内:华为云,阿里云,百度云,腾讯云
全面覆盖各应用领域
– 弹性计算ECS、存储、安全、数据库、区块链、 ......
• 弹性云服务器 ECS(Elastic Compute Service)
– 是一种弹性可伸缩的计算服务(虚拟机),助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新
华为云控制台
注册华为云用户
使用华为云web控制台
云服务器选型要点
• 重点注意事项
– 计费方式(包年包月、按需付费) – 规格(CPU/内存/硬盘) – 镜像(Linux系统) – 登录方式(设密码) – 计费方式(按带宽、按流量)
选购一台ECS云服务器:
• 选型 --> 立即购买 --> 接受许可协议 -->
• 提交申请 --> 确认实例
ECS基本操作
• 基本管理:开机、关机、停止、重启、远程登录 • 更多操作:更改配置、重装系统、换系统
• 远程控制协议
– RDP(端口号3389),适用于Windows服务器 – SSH(端口号22),适用于Linux服务器、防火墙等设备
• 常用SSH管理工具
– PC端:Xshell、SecureCRT、Putty等 – 手机端:iTerminal、Termius、阿里云APP等
创建网站
• 在云服务器上启用Web服务 – 安装 httpd 软件包 – 启动名为 httpd 的系统服务,并设置开机自动运行 [root@svr1 ~]# yum -y install httpd .. .. [root@svr1 ~]# systemctl restart httpd [root@svr1 ~]# systemctl enable httpd [root@svr1 ~]# systemctl status httpd .. .. Active: active (running) .. ..特别注意事项
– ECS实例需开放Web服务端口 22 —— Linux服务器远程控制 80 —— 普通网站服务 443 —— 加密网站服务
从互联网访问刚建立的网站,查看页面效果
转载地址:http://ariqi.baihongyu.com/