暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

搭建数据库学习的私有云环境(二)——虚拟机篇

98

前言

这是一个三篇文章的系列,旨在教你如何用大约 1 万元人民币组建一个私有云环境,供日后学习和测试使用,本文是第二篇。这笔 1 万元的投资对于想提高技术水平的用户来说非常划算。请注意,由于篇幅的原因,本篇不可能针对完全小白的用户,好消息是只有少量非常基础的的术语和步骤方法是需要读者自行学习的。

这个系列的三篇文章分别是:

《搭建数据库学习的私有云环境(一)——物理机篇》

《搭建数据库学习的私有云环境(二)——虚拟机篇》(本篇)

《搭建数据库学习的私有云环境(三)——网络篇》(下一篇)

可以理解为,我分享的是一种在家里搭建 IAAS 层基础设施的方法。这种方法适合广大 IT 朋友,简单易懂,不会涉及真正私有云 IAAS 环境可能会用到的难以入门的 OpenStack 等知识。
虽然说花了 1 万元,但这是一台 1 万元的 Windows 系统,你可以将其用于任何用途,无论是家人看电影还是你自己打游戏,都可以使用,不会耽误。与其说 1 万元是学习成本,不如说实际上是娱乐成本,所以在学习方面实际上是 0 成本!

虚拟机的规划

在《搭建数据库学习的私有云环境(一)——物理机篇》里,我们已经购置了物理机硬件,他称之为宿主机,下面我会在此宿主机上使用虚拟化软件虚拟出一堆 Linux 服务器。假设我要做 MySQL MGR 部署的实验,我可以这么安排分配机器。

IP操作系统配置虚拟化用途
192.168.199.100Win 1116c64G物理宿主机办公、娱乐、打开 PMM 等软件的 web 界面
192.168.199.140AlmaLinux 9.24c16Gvmware 虚拟机PMM 等监控软件
192.168.199.141AlmaLinux 9.24c16Gvmware 虚拟机MGR 主库
192.168.199.142AlmaLinux 9.24c16Gvmware 虚拟机MGR 从库
192.168.199.143AlmaLinux 9.24c16Gvmware 虚拟机MGR 从库

4 台 4c16G,刚好把物理机资源全花光了

下载和安装 vmware workstation

选择 vmware 是因为它是一款强大的图形化虚拟机软件,使用起来简单易用。

首先,我们需要下载和安装最新版的 vmware workstation pro 17 软件,并解决许可证问题。关于这方面的教程,百度上有很多,读者需要自行解决。

下载并在虚拟机里安装 AlmaLinux 9.2

你可以在 AlmaLinux 的官方网站上找到下载地址,可以选择它的中国的镜像源下载:https://mirror.sjtu.edu.cn/almalinux/9.2/isos/x86_64/

一般来说,做实验下载 minimal 的镜像就足够了,体积小,下载速度快。
镜像名:AlmaLinux-9-latest-x86_64-minimal.iso

1. 在 vmware 里安装 AlmaLinux 9.2 (虚拟机实验模板)

这里有一个虚拟机模板的概念,无论安装什么 Linux 发行版操作系统,第一步总是先制作一个虚拟机模板,后续的虚拟机都直接从这个模板进行克隆。这样做实验搭建集群的效率极高。

以下是每步骤的选择。

E 盘是我的 SSD 盘,我会在上面创建一个专门存放 vmware 的目录,然后这台虚拟机的命名和目录名是一样的。例如,AlmaLinux 9.2-template-121 表示操作系统是 AlmaLinux 9.2,template 表示这是虚拟机模板,121 表示这个模板默认的 IP 地址是{我家服务器 IP 网段}.121,也就是 192.168.199.121。

对于模板来说,命名中的 121 对我的命名规范并不是必须的,因为我习惯用 121 这个 IP 尾号来做虚拟机模板,所以不需要这个尾号来提醒自己。

我模板设置的是 2 个物理核心和 2 个逻辑核心,一共就是 4 核。财力有限的玩家可以根据平时创建虚拟机做实验的习惯,设置 1 核或者 2 核作为模板。

设置多少都可以,因为这只是模板,你可以将其理解为默认值。你平时用什么配置多,就设置什么作为默认值。而且虚拟机的资源是可以"超卖"的,也就是说,即使你的物理宿主机只有 4 核,你也可以设置和虚拟出任意台 4 核 CPU 的虚拟机(N * 4 核)出来。只要你不真的在虚拟机里使用这些超卖的核心来进行压力测试,一般不会有问题。

建议设置 4 GB 内存够了,我的宿主机有 64 GB 内存,所以我给每台分配 16G 内存,我经常就是使用 3 台或 4 台虚拟机做测试,我资源是足够的,我设置 16 GB 内存是可以的。

桥接,意味着模拟的是你的虚拟机和你的宿主机是一样,有一根网线直接插在一个交换机/路由器上网的。他和你的宿主机是平级关系。简化你对网络的理解,并且也更准确地模拟生产环境情况。

我没有勾选立即分配所有磁盘空间,这个 100 GB 对我物理机来说是逻辑的,用多少才会占用多少,为了避免麻烦这里一般我会改为 50 GB 或者 100 GB。

例如部署 OceanBase,50 GB 是不够的,甚至无法通过 OCP 的部署前的预检查步骤。

接下来,我要删除一些多余的硬件,并把光盘默认加载进光驱里。

让虚拟光驱载入之前下载的 iso 镜像:  AlmaLinux-9-latest-x86_64-minimal.iso

启动虚拟机之后,虚拟机的光驱会载入 iso 镜像,并从光驱启动服务器,进入安装步骤

注意,这里要用键盘向上选择一下,默认不选择的话,会进入 test this media 流程,浪费你的时间检查 iso 光盘是否有损坏,这个是没必要的流程。

后面的安装步骤其实和安装别的 Linux,例如 CentOS 7 几乎没有区别。

现在开始安装了

等,然后装好后 reboot 一下系统,就完事了。

2. 设置虚拟机模板

虚拟机启动后,会通过 DHCP 获取我家路由器分配的 IP 地址,这里是否有获取到 IP 地址对我来说都不重要,因为我不需要远程通过网络虚拟机操作,我是直接使用 vmware 的控制台操作。作为虚拟机模板,我需要把他改为固定 IP(也叫静态 IP)。下面我列出 AlmaLinux 9.2 修改 IP 地址的步骤,和 CentOS 7 有区别。

本文前面有提及,我家的网段是 192.168.199.0 网段,那截图显示为什么获取的是 192.168.198.0 网段的 IP 地址呢?这个下一篇"网络篇"会解释,这里先埋个伏笔。

获取网卡状态

[root@localhost ~]# nmcli device status
DEVICE  TYPE      STATE                   CONNECTION
ens160  ethernet  connected               ens160
lo      loopback  connected (externally)  lo

复制

配置网卡

192.168.199.121 是我的虚拟机网卡的固定的 IP 地址,我如果要做别的模板,例如 CentOS7.5、CentOS8.5 都是使用这个 IP 地址,23 是子网掩码(为什么是 23 不是默认的 24,这是我精心设计的,下一篇文章网络篇会讲。)

192.168.199.1 是我家路由器的 IP 地址。DNS 地址也填路由器的地址即可。

nmcli con mod ens160 ipv4.addresses "192.168.199.121/23" ipv4.gateway "192.168.199.1" ipv4.dns "192.168.199.1" ipv4.method manual

复制

重启网卡使生效

nmcli con up ens160

复制

验证一下

ping 百度试试是否能上网

编写脚本

实际上,在完成上面的配置网卡步骤后,我的虚拟机模板默认启动的 IP 地址就是 192.168.199.121 了,模板就算做好了。但我还额外添加了一步,以方便我后续克隆虚拟机。

这一步就是编写脚本,并默认上传到虚拟机模板里。

在克隆完虚拟机模板生成虚拟机后,虚拟机的 IP 地址总是 192.168.199.121,主机名总是等于 localhost。一般情况下,这两个配置都是必须修改的。可以通过编写 shell 脚本来实现,在克隆完虚拟机模板生成具体的虚拟机后,执行脚本,自动修改这两个配置。当然了,还可以把许多步骤放到脚本里,做预初始化。参考的脚本如下:

vi config_linux_almalinux9.sh

#/bin/sh

#CentOS7.5默认是minimal安装
IPADDR=$1
GATEWAY=${IPADDR%.*}.1
NETMASK=23
DNS1=${GATEWAY}
HOSTNAME=`echo $IPADDR|sed 's/\./-/g'`
$# -ne 1 ] && echo "Usage:$0 IPADDR" && exit 1

#0 set hostname
hostnamectl set-hostname $HOSTNAME

#1 set limits.conf

#2 kernel optimization

#3 selinux disabled
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

#4 desktop enabled/disabled

#5 stop some services
systemctl stop firewalld.service
systemctl disable firewalld.service

#6 system basic lib package install
#yum install gcc gcc-c++ ncurses-devel.x86_64 cmake.x86_64 libaio.x86_64 bison.x86_64 gcc-c++.x86_64 bind-utils wget curl curl-devel perl openssh-clients setuptool sysstat -y
#yum install -y lrzsz.x86_64
#yum install -y dos2unix
#yum install -y openssh-clients
#yum install -y wget
#yum install -y telnet
#yum install -y strace
#yum install -y unzip

#7 set shanghai time
#ntpdate cn.pool.ntp.org
#\cp -f /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
#hwclock -w

#8 set some other settings
#grep "alias grep='grep --color=auto'" /etc/profile
#if [ $? != 0 ]
#  then
#  echo "alias grep='grep --color=auto'" >> /etc/profile
#  source /etc/profile
#fi

#9 set eth1 to ens160,set IP
nmcli con mod ens160 ipv4.addresses "${IPADDR}/${NETMASK}" ipv4.gateway "${GATEWAY}" ipv4.dns "${DNS1}" ipv4.method manual

#10 disable ipv6

#11 restart the linux server
shutdown -r now

复制

这里我列举了很多可以做的步骤,例如第三和第五步我分别关闭了 SELINUX 和 Firewalld,大家可以按自己需求适当修改或补充脚本内容。

上传完这个脚本后,就可以关机了。这个时候虚拟机模版就完成了。

3. 克隆虚拟机

虚拟机模版实际上就是一台初始化好的虚拟机。

使用虚拟机模版来克隆虚拟机有两种方法,一个是使用 vmware 的内置功能"克隆"来完成

另外一种,就是直接找到虚拟机模版目录,直接复制粘贴目录,我一般使用这种方法。

首先我们找到虚拟模版,可以看出这个模版大小是 1.43 GB。

然后复制,粘贴,之后重命名为"AlmaLinux 9.2-141",用同样的方法,也造出"AlmaLinux 9.2-142"、"AlmaLinux 9.2-143",一共三台虚拟机。

我的命名规则里,141 代表着 IP 尾号是 141。

以 141 这台虚拟机为例子,进入目录,找到 .vmx 结尾的文件,双机打开虚拟机。

打开后,左边会有虚拟机的名字,这个时候也重命名为"AlmaLinux 9.2-141"

做模版时要考虑好做实验的通常情况,一般来说我这里不会再调整硬件配置了。当然,你如果需要,这时可以按需调整虚拟机资源配置,之后点击"开启此虚拟机"开机。

会提示你这个虚拟机是"移动"还是"复制",必须选择复制,选择复制后,启动的虚拟机会把网卡 mac 地址修改了,这可以避免你多台虚拟机和虚拟机模版一模一样的 mac 地址,导致网络冲突!

启动后,执行之前上传的脚本,一键初始化虚拟机。

虚拟机按我的脚本逻辑会修改好后重启,之后他就修改好 IP 地址等配置了,可以提供服务了。

这个时候,我习惯性地会做个快照,改名叫"clear system",尤其是我经常在同一套环境来回地测试重新部署 MySQL。经常需要恢复环境,快照是你做实验的利器,用好快照是你成为运维效率专家的法宝。

使用相同的方法,构建好 3 台 vmware 虚拟机环境。

后面我又弄了一台 192.168.199.140 搭建 PMM 监控系统,用于研究 MGR 的可观察性。

我以 AlmaLinux 9.2 为例子,提供了一种制作虚拟机模板和使用 vmware 克隆技术制作虚拟机的方法。建议初学者参考这一方法,制作 CentOS7 的模板来进行实验,完整走一遍流程。

后续

现在,我们有四台用于实验的 vmware 虚拟机环境。虽然它们只能本地提供服务,无法通过互联网提供服务,但对于私有云环境来说已经足够了。然而,如果想有时候利用家里的远程私有云环境来学习,这是不够用的。因此,下一篇将是《搭建数据库学习的私有云环境(三)——网络篇》,讲解如何通过路由器的端口转发技术和动态域名解析来实现远程虚拟机,使得在任何地方只要接入互联网就可以进行实验。


文章转载自芬达的学习笔记,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论