这一章内容,是我看书之后的总结,也就是为了博主自己看的,也算是自己的心得吧,真不知道怎么学这个,网上教程也没有,就算有,太杂乱了 = =
虚拟化
定义
虚拟化是一种将物理资源(如计算机硬件、存储设备、网络资源等)抽象为逻辑资源的技术手段;也可以理解为将计算单元在虚拟而不是真实的环境中运行,是一个为了简化管理,优化资源的解决方案。可以提高资源利用率、增强系统的灵活性和可扩展性、提供隔离和安全保障,为现代信息技术的发展提供了重要的支持
分类
桌面虚拟化,应用虚拟化,服务器虚拟化,网络虚拟化
三种网络模式
桥接模式
桥接模式就是将主机网卡和虚拟机的虚拟网卡,利用虚拟桥接进行通信。
两者能够相互 ping 通,理论上能够 ping 外网
能够 ping 外网需要配置虚拟机和主机在同一网段,dns, 网关一致
学校内网好像不行,和老师讨论了下,应该是用户权限,或者是学校网络做了相关权限的控制
nat 模式
nat 模式,是主机网卡直接与虚拟 nat 设备相连,nat 直接使用主机网卡分配的 ip,能够 ping 通外网,两者能够相互 ping 通。
理论上 nat 模式下,nat 网络能够 ping 通桥接,仅主机模式网络,但是反过来不行。因为在 nat 模式下,可以将主机网卡看作一台路由器,这台路由器为 nat 虚拟机提供网络转换服务,使得 nat 网络能和主机 ping 通,能够连接外网,当需要连接桥接,仅主机 ip 的时候,会转换至相应模式 ip,所以 nat 模式能够 ping 仅主机,桥接模式 ip。反过来,由于仅主机,桥接模式的原理,无法转换网络 ip,所以无法 ping 至 nat 网络,仅主机,桥接之间也无法互相 ping 通。
手机热点的原理与之类似,当你手机开启热点的时候,你的手机就类似一个路由器,具有网络转换功能,其实每个人的手机都有属于自己的 ip 地址,当你连接热点的时候,手机路由器将你的私有 ip 转换至能够连接外部网络的 ip。
仅主机模式
仅主机模式下,虚拟机只能与主机进行通信,不能直接访问外部网络。虚拟机和主机之间形成一个封闭的网络环境
所以仅主机最好理解,只能和处于主机网段下的 ip 互 ping
kvm 虚拟化技术
kvm
基本概念
KVM 的全称是 kernel-Based Virtual Machine ,KVM 是基于 linux 内核实现的
KVM 的核心模块 ——KVM.Ko,只用于管理虚拟 CPU 和内存
I/O 的虚拟化 (如存储和网络设备),由 llinux 内核和 Qemu 来实现
KVM 框架
KVM 核心模块:包括 KVM 虚拟化核心模块 KVM.Ko,硬件相关的有 KVM.intel 与 KVM_AMD 模块
简而言之 kvm 负责提供对 CPU, 内存的虚拟化
Qemu 设备模拟:Qemu 是用户态工具,可以为客户机提供设备模拟的功能,包括 BIOS,数据总线,磁盘,网卡,显卡,声卡,键盘,鼠标等
简而言之 Qemu 负责除 CPU 和内存外的其他设备的虚拟化以及各种虚拟化设备的创建与调用
kvm 安装
关闭 firewalld,关闭 selinux,然后重启
建立挂载目录 kvm,挂载本地 yum 源,配置本地 yum 源,清缓存,建立缓存
安装 libvirt,qemu-kvm openssl
开启 libvirtd 服务
列出当前虚拟机列表状态
查看 virsh 版本
配置 kvm 虚拟机 nat 网络
配置 kvm,cirros 源 iso,nat 模式
上传 iso 镜像源到虚拟机中
上传 cirros 源到虚拟机 /root 下,作为启动源
添加 kvm 环境变量
创建 nat 脚本
添加权限
运行脚本
qemu-kvm -m 1024 -drive file=cirros-0.6.1-x86_64-disk.img,if=virtio -net nic,model=virtio -net tap,script=/etc/qemu-ifup-NAT -nographic -vnc :1
查看 ip
查看 kvm 虚拟机网络
配置 kvm 虚拟机桥接网络
上传 iso 镜像源到虚拟机中
添加 kvm 环境变量
创建 桥接 脚本
添加权限
创建 bridge
创建桥接,使网卡 br0 绑定网卡 ens33
编辑 ens33
编辑 br0
运行脚本
查看 ip ping 外网
查看网卡桥接
kvm 中的 openstack (国赛内容)
使用 centos 7 dvd 2009
chinaskills _cloud_iaas_v2.0.3.iso
就是脚本搭建 openstack 基础平台
网络配置
节点 | 网络 |
controller | 192.32.61.100 |
192.32.62.100 | |
compute | 192.32.61.101 |
192.32.62.101 |
创建分区
在 compute 节点下
首先添加一块硬盘,书上给的 5G
依次输入:
parted /dev/sdb
mklabel gpt
mkpart cinder 0G 1.5G
mkpart swift 1.5G 3G
p
yum 源配置
controller 节点
compute 节点
镜像挂载,只需在 controller,将 chinaskill_cloud_iaas_2.0.3iso 文件上传
如果没有使用 CentOS-7-X86_64-DVD-1804.iso 镜像也需要上传,若是该镜像直接挂载 media
首先挂载 CentOS-7-X86_64-DVD-1804.iso, 这里显示以磁盘为引导盘方式
mount /dev/sr0 /mnt/ 将 sr0 内 的内容挂载到 mnt 下
cp -rvf /mnt/* /opt/centos 递归复制 mnt 下的所有内容到 centos 下
复制完了后取消挂载
mount -o loop chinaskills_cloud_iaas_v2.0.3.iso/mnt/ 以 loop 方式挂载到 mnt 下
递归复制
查看 iso 源,取消挂载
ftp 服务器搭建
使用共享服务器共享源文件给 compute,减少内存消耗
下载 vsftpd
配置文件最后一行添加 anon_root=/opt/
设置开机自启
配置防火墙和 selinux
两个节点都需要
controller
selinux
防火墙
移除网络,防火墙组建
下载 iptables 防火墙
设置开机自启
iptables -F 清空(flush)所有规则链中的规则
iptables -X 删除(delete)用户自定义的链
iptables -Z 将计数器清零(zero)
compute 节点一样配置
源检测
controller
compute
安装组件环境变量
controller 和 compute 都需要
yum -y install openstack-iaas -y
下载完后,由于本地 openstack 源已经死了,所以换成在线源,前提是 openstack-iaas 已经下载
内核升级
具体配置参数
主机映射
两个节点都需要
路由设置
这个适用于命令行模式下,两个节点都需要
因为安装 openstack-iaas 以及基础脚本后,默认以仅主机为路由,而 centos7 的源关了,无法使用本地源,所以要使用在线源,我们更改默认路由让其能 ping 外网
显示当前默认路由
可见当前是以 ens36,即仅主机网关默认,无法 ping 外网,所以我们要删除,然后使用 ens33 nat 的网关网络
删除默认路由,即第一个
添加新的默认路由
openstack 部署
采用分脚本进行,熟悉 openstack 组建很容易
双节点运行 iaas-pre-host.sh
首先基础脚本,controller 和 compute 都需要
出现下图重启
在 controller 节点运行 iaas-install-mysql.sh 脚本
此脚本是所有基础环境脚本
部署 Keystone 服务脚本
在 controller 节点执行脚本部署 keystone 服务
部署 glance 服务脚本
在 controller 节点执行脚本部署 Glance 服务
部署 placement 服务脚本
在 controller 节点执行脚本部署 placement 服务
部署 Nova 服务脚本
controller 节点
compute 节点
部署 Neturon 服务脚本
在 controller 节点执行脚本部署 Neutron 组件的控制服务
在 compute 节点执行脚本部署 Neutron 组件的计算服务
部署 dashboard 服务脚本
在 controller 节点执行脚本部署 Dashboard 组件服务
正常情况
部署 cinder 服务脚本
在 controller 节点执行脚本部署 Cinder 组件的控制服务
controller 节点脚本执行完成后,在 compute 节点执行脚本部署 Cinder 组件的计算服务
部署 swift 服务脚本
在 controller 节点执行脚本部署 Swift 组件的控制服务
controller 节点脚本执行完成后,在 compute 节点执行脚本部署 Swift 组件的计算服务
基于块存储的操作系统安装
创建磁盘,存放虚拟机操作系统
语法
添加环境变量
vnc 服务配置
虚拟机端下载 vnc 服务
设置 vnc 密码
关闭防火墙
客户端登录
在主机上使用 realvnc viewer
登录 ip + 5901 端口,登录时候密码为设置的 vncserver 密码
画质过低时选择此处
安装系统
命令:
在主机服务端输入:
vncviewer :5900
在下次进去时,直接输入 vncviewer :5900,在 virt-manager 是没有显示的
虚拟机迁移
静态迁移
确保两台虚拟机互通
kvm01 : 192.32.62.143
kvm02:192.32.62.145
虚拟机迁移
将源虚拟机的要迁移的虚拟机配置文件和磁盘文件迁移到目的虚拟机,要确保目的虚拟机没有对应的虚拟机包括其磁盘
虚拟机配置文件迁移,首先找寻其位置
动态迁移
三台虚拟机互通
kvm01 192.32.62.143
kvm02 192.32.62.146
kvm03 192.32.62.147
前置准备
关闭防火墙,selinux,三台虚拟机都需要,这里演示共享服务器 kvm03
主机映射
在 kvm01 上映射 kvm01,kvm02 主机信息,即源主机和宿主机
共享服务准备
kvm03 作为共享服务器,下载 rpcbind 以及 nfs 服务
建立共享目录
在 kvm03 上建立共享目录,并赋权
修改 nfs 服务配置文件
服务启动,nfs,rpcbind
在源宿主机 (kvm01) 和目的宿主机 (kvm02) 上创建共享文件夹,并赋予权限
挂载共享目录
kvm01,kvm02 都需要,挂载成功与否桌面会显示挂载文件夹
目的宿主机创建壳 (磁盘)
源主机动态迁移
需要确保要迁移的虚拟机是开启状态
说是动态迁移。。感觉更像映射,因为虚拟机还是再 kvm01 上,对 kvm02 上虚拟机做操作是直接影响 kvm01 对应虚拟机上,而且 kvm02 上创的壳并没有太大内存波动,完全是缓存使用内存
https://blog.csdn.net/weixin_53466908/article/details/122591179