前言:
目前朋友们对“清华镜像centos”大概比较讲究,小伙伴们都想要知道一些“清华镜像centos”的相关文章。那么小编也在网上汇集了一些关于“清华镜像centos””的相关文章,希望大家能喜欢,兄弟们快快来学习一下吧!多主机虚拟化
虚拟化需求
某校园大数据实验室有少量几台高性能服务器,供20多名学生使用,每个学生占用机器的时间不同,需要安装的环境不同,经常发生环境冲突及无机器可用的情况。实验室导师迫切需要将几台服务器统筹管理,从中划分出部分资源供学生独立使用互不干扰,使用完之后及时释放。
根据以上描述,需要使用到多主机虚拟化技术,得出以下虚拟化需求:
有若干台物理宿主机,在宿主机上创建客户机(虚拟机);统一入口管理客户机;客户机相互独立互不干扰,可动态的创建与销毁;客户机操作系统为常见linux或windows,方便学生上手及安装应用程序。常见的虚拟化架构
由于我们个人一般使用windows操作系统,但很多系统运行时需要部署到linux,因此大多数人在windows上使用过VMware workstation、VirtualBox虚拟机。按实现结构分类目前流行的虚拟化架构包括
寄居虚拟化
寄居虚拟化如图所示,最底层是物理硬件,物理硬件之上是主机的操作系统,操作系统之上是VMM(virtual machine monitor,虚拟机管理器),再往上就是虚拟机了。
在这种技术里面,虚拟机对各种物理设备(cpu、内存、硬盘等)的调用,都是通过VMM层和宿主机的操作系统一起协调才完成的。VMvare workstation和Oracle VirtualBox都是基于这种方式实现的。
优点:简单容易实现。可以充分利用现有操作系统的设备驱动程序,VMM无须为各类I/O设备重新实现驱动程序,可以专注于物理资源的虚拟化
缺点:系统损耗大,效率比较低。由于物理资源由宿主机操作系统控制,VMM得要调用宿主机操作系统的服务来获取资源进行虚拟化,而那些系统服务在设计开发之初并没有考虑虚拟化的支持,因此,VMM虚拟化的效率和功能会受到一定影响
裸机虚拟化
裸机虚拟化指的是,直接将VMM安装在硬件设备与物理硬件之间,如图所示。VMM在这种模式下又叫做Hypervisor,虚拟机有指令要执行时,Hypervisor会接管该指令,模拟相应的操作。
其虚拟机管理器即可作为一个“操作系统”,同为虚拟机管理器。实现这类虚拟化的厂商国外比较出名的有VMware Vsphere,国产自主化的有云宏CNware等。
优点:效率高。由于VMM同时具备物理资源的管理功能和虚拟化功能,因此,物理资源虚拟化的效率会更高一些
缺点:实现复杂。设备驱动开发的工作量是很大的。因此,对于Hypervisor模型来说这是个很大的挑战
混合虚拟化
混合模型是上述两种模式的汇合体。VMM依然位于最低层,拥有所有的物理资源。与Hypervisor模式不同的是,VMM 会主动让出大部分I/O设备的控制权,将它们交由一个运行在特权虚拟机中的特权操作系统控制。相应地,VMM 虚拟化的职责也被分担.处理器和内存的虚拟化依然由VMM来完成,而I/O的虚拟化则由VMM和特权操作系统共同合作来完成。
采用这种模型的典型是Xen。与Xen经常被同时提起的还有一种技术KVM(Kernel-based Virtual Machine 基于内核的虚拟机),其已经被写入Linux内核。这两种都是开源的虚拟化解决方案,而KVM社区活跃度更强。
KVM在“形式”上,属于寄居虚拟化,KVM是一种虚拟机监控器,又为“虚拟机管理器”(VMM),负责管理虚拟机(又称客户机)的创建、启动、关闭和销毁(即管理生命周期),安装在主机(即物理机)上,通过主机操作系统访问物理机的资源。
寄居虚拟化是将VMM安装在已有的主机操作系统上,而另一种虚拟化结构——裸机虚拟化,是直接把VMM安装在服务器 的硬件设备中,相当于一个操作系统。KVM是安装在Linux(操作系统)的内核中,无法绝对划归于哪一类。
思考:
工业上常用的docker容器属性哪一种虚拟化架构?
由于docker需要安装在操作系统中,然后再运行各个docker容器(小型linux操作系统),笔者认为其属于寄居虚拟化。
虚拟技术选型根据前述虚拟化架构优缺点,结合实验室的多主机虚拟化需求。先排除寄居虚拟化(VirtualBox、VMware workstation),其无法实现多宿主机上的客户机管理。优先考虑VMware Vsphere方案,但该方案需要高价付费授权(免费试用期60天)且安装部署复杂。其次考虑开源的混合模型,因Xen部署更复杂(如果你需要更新Xen的版本,你需要重新编译整个内核)且Xen活跃度在下降,最终选择了写入了Linux内核、更轻量的KVM。
为什么不考虑Kubernetes (k8s)?
K8s可很方便的进行多主机集群,客户机(容器)管理,看起来很适合。
用户使用虚拟机时,会安装各种各样的应用程序、上传数据,以致于虚拟机的状态不断更新。k8s的docker容器更适合无状态的虚拟机。容器不便操作,常规的容器命令行操作要通过宿主机命令行,不符合当前的使用需求。集群管理
要实现一个可运行、可运维的KVM虚拟化解决方案,需要解决两个问题,
第一个是虚拟化技术实现问题,
第二个是集群虚拟机管理问题。
前面所介绍的内容只是解决了虚拟化技术问题,还有集群虚拟机管理问题没有解决,因此我们需要有一套KVM管理工具实现对KVM虚拟化的管理和运维。到目前为止,KVM拥有从virsh命令行工具到OpenStack云管理平台工具等一整套的开源KVM管理工具,这些工具的能力层次各有不同。
初级,“KVM+virsh”虚拟化解决方案主要是通过在/etc/libvirtd/qemu里面的“.xml”配置文件去描述每一台虚拟机的配置,然后用virsh命令行管理虚拟机,最后用VNC/SPICE按照配置好的端口链接过去,模拟终端操作。基于单机管理模式。中级,“KVM+virt-manager”虚拟化解决方案主要是通过桌面图形化工具virt-manager直接创建、编译和管理虚拟机。使用桌面版本的 VNC/SPICE连接到KVM主机,输入“virt-manager”命令之后,自动弹出虚拟系统管理器窗口来进行创建、编译和管理虚拟机工作。这种方式仍然属于基于单机管理模式。高级,“KVM+Web管理工具”虚拟化解决方案主要是通过Proxmox VE、WebVirtMgr、Kimchi以及oVirt等各种轻量级的Web GUI工具进行中小规模级别的虚拟机集群管理。Web GUI工具简单易用易理解,尤其是傻瓜化的Proxmox VE,更是受小白们欢迎。“KVM+Web管理工具”这种方式可以实现中小规模化的虚拟机集群管理。超级段位,“KVM+云管理平台工具”虚拟化解决方案主要通过OpenStack、ZStack等云管理平台来管理一个或多个数据中心的所有计算资源池、存储资源池、网络资源池等硬件资源,可以实现大规模/超大规模的KVM主机管理。
第1、2套无法管理集群,第4套OpenStack 又基本需要一个 DevOps 团队才玩得转。所以作为个人或者中小团队,买了几台硬件过来,想把它变成一套小型的阿里云,腾讯云的系统,可以在 web 上创建/配置虚拟机,装系统,管理硬件资源,进行迁移备份等,基本就是第3套解决方案。
Proxmox VE
Proxmox VE(Virtual Environment)的使用很简单,很傻瓜化,深受小白们的欢迎。管理操作可以通过内嵌的Web GUI完成,不需要专门安装管理工具或基于大型数据库的管理服务器节点。多主集群架构能够让你通过任意节点管理整个集群。基于JavaScript框架(ExtJS)开发的集中Web管理界面不仅能够让你通过GUI 界面控制一切功能,而且可以浏览每个节点的历史活动和syslog日志,例如虚拟机备份恢复日志、虚拟机在线迁移日志、HA活动日志等。
WebVirtMgr
WebVirtMgr是一个基于libvirt开发的KVM管理平台,提供对宿主机和虚机的统一管理,它有别于KVM自带的图形管理工具(virtual machine manager),让KVM的管理变得更为可视化,比较合适用于小型的KVM应用场景,比如对于虚拟机在10-200之间的集群来说,采用WebvirtMgr是一种不错的选择。
Kimchi
Kimchi是一款基于HTML5的KVM管理工具,它被设计成尽可能容易使用KVM并创建虚拟机的Web工具,它通过libvirt管理KVM虚拟机。
oVirt
oVirt是Red Hat虚拟化管理平台RHEV的开源版本,利用oVirt管理KVM虚拟机和网络,企业可以快速地搭建一个私有云环境,oVirt基于Web方式进行管理,管理界面非常友好,oVirt比较适合较中小集群规模,比如虚拟机上千的集群,使用oVirt是一种不错的选择。
为快速上线,笔者选择了Proxmox VE方案。
Proxmox VE 虚拟机集群管理
为验证方案可行性,现在一台服务器上用几台VMware虚拟服务器进行测试。
proxmox服务器安装下载
下载proxmox 最新的ISO镜像文件,
下载地址选择bt种子下载Proxmox VE 7.3 ISO Installer (BitTorrent),点击download按钮,种子下载后使用迅雷创建任务,添加BT任务
安装系统创建VMware虚拟机创建其他 Linux 5.x 内核 64 位空白虚拟机编辑虚拟机设置,内存4g;处理器2核心勾选虚拟化引擎(虚拟化Intel VT-x或AMD-V,重要,否则Proxmox无法创建虚拟机);CD/DVD使用ISO镜像文件(选择下载的Proxmox VE镜像);网络适配器选择自定义 特定虚拟网络 VMnet1 (仅主机模式),该模式方便ip专用,避免ip冲突;安装Proxmox VE系统前面步骤较为简单,选择install proxmoxve、点击下一步、设置密码邮箱等。网络设置需要注意,此处只用了一张网卡。三个服务器配置为
主机名:pve1.认证域~pve3.认证域IP:192.168.29.11~192.168.29.13网关:192.168.29.1DNS默认
Hostname设置为pve1.local-pve3.local。网关192.168.29.1 ip为VMnet1虚拟网卡的ip
确认之后点击install, proxmox ve系统开始安装,安装完成后自动重启集群创建及配置创建并加入集群
VMware中proxmox ve虚拟机启动后,输入用户名root及安装时设置的密码进入命令行
不指定网卡创建集群
在任一proxmox ve服务器(这里以192.168.29.11为例)命令行输入pvecm create clust1即可创建集群clust1
pvecm create clust1
查看集群状态
pvecm status
加入集群
分别登录其他节点,执行命令:pvecm add 192.168.29.11 。如果集群中已有多台服务器,这里ip可以改成集群中任一服务器ip
pvecm add 192.168.29.11
指定网卡
proxmox ve服务器有多张网卡,可指定网卡对应的ip来创建集群
创建集群
若proxmox ve服务器有两张网卡,网卡1 ip 192.168.29.11、网卡2 ip 172.10.10.11,可指定网卡2创建集群
pvecm create clust1 --link0 172.10.10.11
加入集群
分别登录其他节点,执行命令:pvecm add 172.10.10.11 --link0 172.10.10.12,即加上各个节点网卡2的地址。
pvecm add 172.10.10.11 --link0 172.10.10.12
在浏览器输入,用户名root,输入安装时设置的密码即可登录集群管理界面。最终效果如下图
退出集群在需要退出集群的node例如pve3上停止pve-cluster 服务
systemctl stop pve-cluster.servicesystemctl stop corosync.service
node pve3上集群系统文件设置未本地模式
pmxcfs -l
删除 pve3 corosync 和节点配置文件
rm /etc/pve/corosync.confrm -rf /etc/corosync/*rm -rf /etc/pve/nodes/*重新启动pve3的集群文件系统服务
killall pmxcfssystemctl start pve-cluster.service
安全删除节点:登陆其它正常节点pve1或pve2,查看所有的节点:
pvecm nodes删除目标节点
pvecm delnode pve3创建虚拟机
接下来我们将在Proxmox VE服务器上安装虚拟机
虚拟机安装
先实现最简单的虚拟机安装方式,直接通过Proxmox VE服务器的本地存储的ISO镜像安装虚拟机。
下载Linux的安装镜像文件,此处以Centos7为例,下载地址 清华大学开源软件镜像站 | 上传iso镜像到proxmox ve某个节点的local存储浏览器输入 账号root,输入安装时设置的密码登录选择节点下的local树形节点——点击ISO镜像菜单——点击上传按钮——点击选择文件,选择刚下载好的centos镜像上传完iso镜像后点击右上角“创建虚拟机”
常规——输入虚拟机名称,其他保持默认
操作系统——存储默认local、类别Linux、ISO镜像选择刚上传的Centos7 iso镜像、版本选择5.x - 2.6 Kernel
系统——保持默认
磁盘——保持默认
CPU——保持默认
内存——保持默认
网络——保持默认
确认——勾选创建后启动,点击完成按钮
安装虚拟机操作系统点击centos7虚拟机——选择控制台——进入控制台后按向上光标选择“Install CentOS 7” 启动安装引导程序启动安装引导后等待一段时间,选择安装语言中文-简体中文安装信息摘要设置
必须:选择安装位置
可选:软件选择,此次安装为加快速度采用最小安装
点击安装位置进入安装目标位置选择界面,保持默认直接点击完成即可
回到安装摘要信息,点击开始安装按钮即可开始安装
开始安装后,点击ROOT密码设置,为ROOT用户设置密码
设置密码,点击完成按钮,若密码过于简单则多点击几次完成按钮
等待虚拟机安装完成重启虚拟机,等待一段时间,虚拟机重启后在控制台输入账号root、密码进入虚拟机命令行即可开始操作虚拟机虚拟机网络配置
虚拟机自动桥接了proxmox ve服务器的网卡,默认自动获取ip,改成静态ip
编辑网卡配置,在虚拟命令行输入
vi /etc/sysconfig/network-scripts/ifcfg-eth0
修改BOOTPROTO-获取ip方式dhcp改成static,ONBOOT-自启动no改成yes,增加静态ip、网关(同proxmox ve服务器的网关一样——VMnet1的ip)、DNS的配置,最终配置如下
TYPE=EthernetPROXY_METHOD=noneBROWSER_ONLY=noBOOTPROTO=staticDEFROUTE=yesIPV4_FAILURE_FATAL=noIPV6INIT=yesIPV6_AUTOCONF=yesIPV6_DEFROUTE=yesIPV6_FAILURE_FATAL=noIPV6_ADDR_GEN_MODE=stable-privacyNAME=eth0UUID=e486fd6c-e8c4-424d-9584-8d8bbec01c2fDEVICE=eth0ONBOOT=yesIPADDR=192.168.29.111NETMASK=255.255.255.0GATEWAY=192.168.29.1DNS1=8.8.8.8
:wq保存
重启虚拟机网卡
systemctl restart network
集群外机器即可通过虚拟机ip访问虚拟机。也可通过xshell等工具直接ssh连接虚拟机。
扩展安装(可选)多服务器共享目录NFS(可选)
NFS 网络文件系统,英文Network File System,多个Proxmox VE服务器组建集群后,ISO镜像、备份文件等需在各个服务器间共享,前述虚拟机安装的local iso只能在当前服务器上使用,集群中其他服务器不可使用,因此可以创建NFS服务,NFS可安装到单独的服务器也可安装在集群中的某个节点上,此处以安装到pve3节点举例。
配置安装源修改/etc/apt/sources.list.d/pve-enterprise.list文件,注释其中的配置
#deb bullseye pve-enterprise修改/etc/apt/sources.list文件,注释原来的配置,增加中科大的安装源
# 中科大源deb bullseye main contrib non-freedeb bullseye-updates main contrib non-free#deb bullseye main contrib#deb bullseye-updates main contrib# security updates#deb bullseye-security main contrib
应用源的更新
apt-get update
安装nfs服务
apt-get install nfs-common nfs-kernel-server -y创建共享目录
mkdir -p /data/share/pvechmod 777 /data/sharechmod 777 /data/share/pve
修改/etc/exports文件,增加共享的目录内容
/data/share *(rw,sync,insecure,no_root_squash)
启动nfs服务
systemctl restart nfs-server.service检查nfs是否成功
showmount -e
输出以下结果
Export list for pve3:/data/share *
集群中添加NFS选中数据中心——存储——添加按钮——NFS添加NFS,输入ID、服务器192.168.29.13、选择Export,点击添加按钮完成NFS创建创建后效果如下可在NFS中上传ISO镜像,创建虚拟机时除了从local选择ISO镜像,也可从NFS选择镜像
选中share——ISO镜像——上传按钮——选择文件——点击上传
上传完ISO到NFS后,创建虚拟机时可以从NFS选择ISO镜像
Ceph分布式文件系统安装(可选)
Ceph以其先进的去中心化设计,成为了分布式块存储领域的佼佼者,它可以将多台服务器中的硬盘聚合成一个集群,对外可提供文件存储、块存储、对象存储等多种形式,Ceph的另一个特点是数据采用多副本方式存储,避免由于单点故障造成的业务中断和数据丢失。
一个 ceph 集群的组成部分:若干的 Ceph OSD(对象存储守护程序) 至少需要一个 Ceph Monitors 监视器(1,3,5,7…) 两个或以上的 Ceph 管理器 managers,运行 Ceph 文件系统客户端是 还需要高可用的 Ceph Metadata Server(文件系统元数据服务器)。
RADOS cluster:由多台 host 存储服务器组成的 ceph 集群OSD(Object Storage Daemon):每台存储服务器的磁盘组成的存储空间Mon(Monitor):ceph 的监视器,维护 OSD 和 PG 的集群状态,一个 ceph 集群至少要有一个 mon,可以是一三五七等等这样的奇数个。Mgr(Manager):负责跟踪运行时指标和 Ceph 集群的当前状态,包括存储利用率,当前性 能指标和系统负载等。
这里我们通过Proxmox VE的管理WEB界面集群管理进行Ceph创建,要在每个节点上安装ceph。
增加Ceph源
修改所有proxmox VE服务器 /etc/apt/sources.list,增加ceph源
#ceph更新源deb buster pve-no-subscriptiondeb bullseye main
注意:ceph-quincy为ceph的版本,由proxmox ve中ceph安装的版本确定,proxmox ve 7.3 版本对应的是ceph-quincy
最终,所有proxmox ve服务器的源配置如下:
/etc/apt/sources.list
# 中科大源deb bullseye main contrib non-free# deb-src bullseye main contrib non-freedeb bullseye-updates main contrib non-free# deb-src bullseye-updates main contrib non-free#ceph更新源deb buster pve-no-subscriptiondeb bullseye main#deb bullseye main contrib#deb bullseye-updates main contrib# security updates#deb bullseye-security main contrib
/etc/apt/sources.list.d/pve-enterprise.list
#deb bullseye pve-enterpriseproxmox ve web界面选中节点——ceph——安装ceph
点击开始quincy安装按钮
输入y继续
等待ceph-quincy安装完成点击下一步进入ceph网络配置
一般proxmox ve服务器要求多张网卡,集群内部网络通信量大,公网访问和集群内部互联访问采用不同网卡,此处只有一张网卡,因此设成相同ip。
点击下一步——完成Ceph的创建
Ceph监视器
提示 'OSD count 0 < osd_pool_default_size 3',接下来创建OSD
配置Ceph的OSD
在pve1中,选择“Ceph→OSD→创建:OSD”
提示没有未使用的磁盘,因为我们的proxmox ve服务器只有一块盘,需要给proxmox ve所有服务器再加一块磁盘,如果服务器有多块磁盘则可忽略。
停止proxmox ve服务器——编辑设置——在硬件中选择磁盘——点击添加
前面按照默认设置,指定磁盘容量时,设置为合适大小
重启各proxmox ve服务器之后,再回到集群管理界面,再次创建OSD,有可选择磁盘
选择磁盘,点击创建即可完成 OSD创建,结果如下:
创建其他节点的OSD与pve1类似,这里不做详述。最终效果如下:
配置CephFS(可选)
选择“数据中心-pve1→Ceph→CephFS→元数据服务器→创建,创建元数据服务器
将pve1添加到元数据服务器。
点击创建CephFS
弹框中保持默认,点击创建
等待cephfs创建完成
然后,再用同样的方法将pve2、pve3添加到元数据服务器之中去。
可以在Ceph监控界面看到元数据服务器的监控信息,如图元数据服务器监控界面
配置Pools资源池创建ssd_storage存储
选择“数据中心→ pve1→Ceph→Pools→创建”,点击“创建”按钮,创建名称为“ssd_storage”的存储
根据官方的文档,pg_num这个数值比较关键,如果不合适的话,Ceph会告警,官方建议:
若少于5个OSD, 设置pg_num为128。5~10个OSD,设置pg_num为512。10~50个OSD,设置pg_num为4096。
我们这里3个OSD,采用默认值128
创建之后如图所示。
pve2、pve3的Pools资源池配置会同步pve1资源池配置所以无需在单独配置(7.0特性)。
之后我们可以在cephfs中上传镜像,一个节点上传,其他节点都可见
cephfs中的镜像可用于虚拟机安装ISO镜像
ceph - pools中的ssd_storage可作为虚拟机安装的目标磁盘
参考文献虚拟化技术基础 ()虚拟化的三种类型是什么?每一种类型都用于什么?()案例为王 | 解剖虚拟化技术(KVM&Xen)()KVM虚拟化解决方案系列之KVM架构篇()KVM 虚拟化环境搭建 - ProxmoxVE()KVM虚拟化解决方案系列之KVM管理工具-绪论篇()群集加入失败 此主机已包含虚拟客户机()proxmox退出集群( )
标签: #清华镜像centos #centos7清华镜像