
Linux中如何构建4块虚拟盘来搭建分布式MinIO集群?
由于最近刚接手对象存储相关系统的建设与稳定性运维,作为一个“对象存储”的一名菜鸟,需要加强这块的学习。
由于公司目前采用MinIO来搭建公司的对象存储体系,后续我会陆续将自己关于MinIO的学习经验分享出来,欢迎大家持续关注。
本文主要是介绍如何在测试环境中搭建MinIO,这也是构建MinIO学习环境最基本的步骤。
1、准备实验环境
使用Oracle VM VirtualBox虚拟机,安装一个最小版本的Linux,然后添加4块虚拟盘,用于充当MinIO的虚拟盘。
实验环境如下所示:
接下来和大家简单介绍一下虚拟环境的搭建。
Step1:具体添加虚拟盘的方式:
操作路径:【设置】-【存储】,在控制SATA添加【加号】
Step2:点击【创建】,创建一块磁盘,操作如下图所示:
创建好四块磁盘后,重启服务器。
Step3:检验操作系统是否识别到磁盘
首先我们可以运行lsblk,执行结果如下所示:
根据创建文件的大小,我们可以看到创建的四块虚拟盘sdb、sdc、sdd、sde,但并未挂载(MOUNTPOINT为空)
但此时使用 df -h 命令,无法查看到这些盘,结果如下所示:
但使用fdisk -l 命令也能查询到四块虚拟盘信息,如下所示:
那如何将四块虚拟盘挂载到文件系统呢?
Step4:创建分区、格式化磁盘,并挂载到文件,具体命令如下:
在使用同样的命令将 /dev/sdc、/dev/sdd、/dev/sde创建分区并挂载到/data2,/data3,/data4。
最后的执行效果如下:
至此,实验环境准备完成。
2、部署MinIO
MinIO支持三种部署架构:
- Single-Node Single-Drive (SNSD or “Standalone”) 单节点单驱动器
- Single-Node Multi-Drive (SNMD or “Standalone Multi-Drive”) 单节点多驱动器,伪分布式,能使用纠错码等生产特性。
- Multi-Node Multi-Drive (MNMD or “Distributed”) 多节点多驱动器,即分布式部署架构,强烈推荐用于生产环境。
由于测试资源有限,本文采用Single-Node Multi-Drive进行搭建。
SNMD部署架构支持驱动器(磁盘)的容错。生产环境强烈推荐使用MNMD架构。
2.1安装前准备
MinIO强烈推荐直连的JBOD阵列,xfs格式的磁盘以获得最佳性能。
DAS (Direct-Attached Storage)与网络存储(NAS、SAN、NFS)相比具有显著的性能和一致性优势。
使用非xfs文件系统(ext4、btrfs、zfs)的部署往往具有较低的性能,同时ext4等文件存储对单个目录下的文件有个数限制,容易影响可用性。
Minio天生具有分布式存储的优势,并且内部采用纠删码,RAID或类似技术反而不能提供额外的弹性或可用性优势,而且通常会降低系统性能。
请确保服务器池中的所有节点使用相同类型(NVMe、SSD或HDD)的驱动器,并且容量相同。MinIO不区分驱动器类型,也不能从混合存储类型中获益。此外。MinIO将每个驱动器的大小限制为部署中最小的驱动器所拥有的容量。例如,如果部署有15个10TB驱动器和1个1TB驱动器,MinIO将每个驱动器的容量限制为1TB。
MinIO需要使用展开符号{x…y}用来表示Server Pool中每一个节点的一组磁盘驱动器,并且要求Server Pool中所有节点的磁盘驱动器序列相同。MinIO还要求物理驱动器的顺序在重新启动时保持不变,这样给定的挂载点总是指向相同的格式化驱动器。
2.2 如何一步一步安装MinIO
Step1:根据不同的操作系统与CPU架构,下载对应的安装包,例如当前虚拟机是amd,我们下载对应的RPM包,命令如下:
通过该命令安装后,有关MinIO相关文件:
- /usr/local/bin/ MinIO 可执行文件所在的目录,该目录下就只有一个可执行文件 minio。
- /etc/systemd/system/minio.service MinIO系统服务文件
- /etc/default/minio MinIO环境变量文件
如果是使用二进制文件直接安装,其实就是要创建如上三个文件。
Step2:创建systemd系统服务文件
如果是基于rpm或者deb包进行安装的话,会自动创建systemd系统服务文件,如果是二级制安装模式,就需要自动创建该文件,文件的全路径为/etc/systemd/system/minio.service,具体的内容如下:
默认情况下MinIO使用minio-user用户与minio-user用户组启动MinIO进程,故我们需要创建对应的用户与组,具体命令如下:
Step3:创建环境变量
默认需要创建 /etc/default/minio 文件,用于设置minio相关的环境变量(配置项)。关于MinIO的配置详细说明可以参考官方网站:https://min.io/docs/minio/linux/operations/install-deploy-manage/deploy-minio-single-node-multi-drive.html#id6
例如我们创建的最小化配置文件如下:
其中MINIO_VOLUMES参数用于指定MinIO集群的磁盘,这里由于是单节点,所有省略了HOSTNAME。
Step4:启动MinIO
通过在节点上使用如下命令启动MinIO(如果分布式环境下,分别在不同节点执行该命令)。
命令执行后,我们可以使用如下命令查看minio是否启动成功
该命令运行的截图如下所示:
其中Active(running)表示运行正常,并且可以看到Console的地址,我们可以在浏览器中输入console地址,打开MinIO内置的控制台:
用户名、密码是配置在MinIO环境变量配置文件中,输入用户名、密码即可登录。
当然MinIO也提供了对应mc 客户端命令访问服务端,关于运维命令,将会在后续文章介绍。
并基于MinIO Console成功创建了Bucket并成功上传了文件,效果如下图所示:
文章转载自公众号:中间件兴趣圈
