介绍
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 [email protected] #连接虚拟机上看磁盘变化
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
C #虚拟机名称4
1488282 #这里指内存大小1G,两项要一致5
1488282 6
2 #虚拟的CPU个数24 <disk type='file' device='disk'>
25
2637
38
39
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
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 —— 加密网站服务
从互联网访问刚建立的网站,查看页面效果