>시스템 튜토리얼 >리눅스 >Linux에서 분산 MinIO 클러스터를 구축하기 위해 4개의 가상 디스크를 구축하는 방법은 무엇입니까?

Linux에서 분산 MinIO 클러스터를 구축하기 위해 4개의 가상 디스크를 구축하는 방법은 무엇입니까?

王林
王林앞으로
2024-02-10 16:48:131318검색

저는 최근에 객체 스토리지 관련 시스템의 구축과 안정성 운영 및 유지 관리를 담당하기 시작했기 때문에 "객체 스토리지"의 초보자로서 이 분야에 대한 학습을 ​​강화해야 합니다.

회사에서는 현재 회사의 객체 스토리지 시스템을 구축하기 위해 MinIO를 사용하고 있으므로 앞으로 MinIO에 대한 학습 경험을 점차적으로 공유할 예정입니다.

이 글에서는 테스트 환경에서 MinIO를 설정하는 방법을 주로 소개합니다 이는 MinIO 학습 환경 구축의 가장 기본적인 단계이기도 합니다.

1. 실험 환경을 준비하세요

Oracle VM VirtualBox 가상 머신을 사용하여 최소 버전의 Linux를 설치한 다음 4개의 가상 디스크를 추가하여 MinIO 가상 디스크로 사용하세요.

실험 환경은 다음과 같습니다.

Linux에서 분산 MinIO 클러스터를 구축하기 위해 4개의 가상 디스크를 구축하는 방법은 무엇입니까?

다음으로 가상환경 구축에 대해 간략하게 소개하겠습니다.

1단계: 가상 디스크를 추가하는 구체적인 방법:

Linux에서 분산 MinIO 클러스터를 구축하기 위해 4개의 가상 디스크를 구축하는 방법은 무엇입니까?

작업 경로: [설정]-[저장소], SATA 제어를 위해 [더하기 기호] 추가

Linux에서 분산 MinIO 클러스터를 구축하기 위해 4개의 가상 디스크를 구축하는 방법은 무엇입니까?

2단계: [만들기]를 클릭하여 디스크를 만듭니다. 작업은 아래 그림과 같습니다.

Linux에서 분산 MinIO 클러스터를 구축하기 위해 4개의 가상 디스크를 구축하는 방법은 무엇입니까?

4개의 디스크를 생성한 후 서버를 다시 시작하세요.

3단계: 운영 체제가 디스크를 인식하는지 확인하세요

먼저 lsblk를 실행할 수 있으며, 실행 결과는 다음과 같습니다.

으아악

생성된 파일의 크기에 따라 생성된 가상 디스크 4개(sdb, sdc, sdd, sde)를 볼 수 있으나 마운트되지는 않습니다(MOUNTPOINT가 비어 있음)

그러나 이때 df -h 명령을 사용하면 해당 디스크를 볼 수 없습니다.

으아악

그러나 아래와 같이 fdisk -l 명령을 사용하여 4개의 가상 디스크 정보를 쿼리할 수도 있습니다.

으아악

그럼 4개의 가상 디스크를 파일 시스템에 마운트하는 방법은 무엇입니까?

4단계: 파티션을 생성하고 디스크를 포맷한 후 파일에 마운트합니다.

으아악

동일한 명령을 사용하여 /dev/sdc, /dev/sdd 및 /dev/sde에 대한 파티션을 생성하고 /data2,/data3,/data4에 마운트합니다.

최종 실행 효과는 다음과 같습니다.

으아악

이제 실험 환경이 준비되었습니다.

2. MinIO 배포

MinIO는 세 가지 배포 아키텍처를 지원합니다.

  • 단일 노드 단일 드라이브(SNSD 또는 "독립형") 단일 노드 단일 드라이브
  • 단일 노드 다중 드라이브(SNMD 또는 "독립형 다중 드라이브") 의사 분산형 단일 노드 다중 드라이브는 오류 수정 코드와 같은 생산 기능을 사용할 수 있습니다.
  • 다중 노드 다중 드라이브(MNMD 또는 "분산") 분산 배포 아키텍처인 다중 노드 다중 드라이브는 프로덕션 환경에 적극 권장됩니다.

제한된 테스트 리소스로 인해 이 문서에서는 구축에 단일 노드 멀티 드라이브를 사용합니다.

SNMD 배포 아키텍처는 드라이브(디스크) 내결함성을 지원합니다. 프로덕션 환경에서는 MNMD 아키텍처를 사용하는 것이 좋습니다.

2.1 설치 전 준비

MinIO는 최적의 성능을 위해 직접 연결된 JBOD 어레이 및 xfs 형식 디스크를 권장합니다.

DAS(직접 연결 스토리지)는 네트워크 스토리지(NAS, SAN, NFS)에 비해 상당한 성능 및 일관성 이점을 제공합니다.

xfs가 아닌 파일 시스템(ext4, btrfs, zfs)을 사용하는 배포는 종종 성능이 저하됩니다. 동시에 ext4와 같은 파일 저장소에는 단일 디렉터리의 파일 수에 제한이 있어 가용성에 쉽게 영향을 미칠 수 있습니다.

Minio는 본질적으로 분산 스토리지의 장점을 갖고 있으며 내부적으로 삭제 코딩을 사용합니다. RAID 또는 유사한 기술은 추가적인 탄력성이나 가용성 이점을 제공할 수 없으며 일반적으로 시스템 성능을 저하시킵니다.

서버 풀의 모든 노드가 동일한 유형의 드라이브(NVMe, SSD 또는 HDD)를 사용하고 용량이 동일한지 확인하세요. MinIO는 드라이브 유형을 구분하지 않으며 스토리지 유형을 혼합해도 이점을 얻을 수 없습니다. 또한. MinIO는 각 드라이브의 크기를 배포에서 가장 작은 드라이브가 보유하는 용량으로 제한합니다. 예를 들어 배포에 10TB 드라이브 15개와 1TB 드라이브 1개가 있는 경우 MinIO는 각 드라이브의 용량을 1TB로 제한합니다.

MinIO需要使用展开符号{x…y}用来表示Server Pool中每一个节点的一组磁盘驱动器,并且要求Server Pool中所有节点的磁盘驱动器序列相同。MinIO还要求物理驱动器的顺序在重新启动时保持不变,这样给定的挂载点总是指向相同的格式化驱动器。

2.2 如何一步一步安装MinIO

Step1:根据不同的操作系统与CPU架构,下载对应的安装包,例如当前虚拟机是amd,我们下载对应的RPM包,命令如下:

wget https://dl.min.io/server/minio/release/linux-amd64/archive/minio-

20230313194617.0.0.x86_64.rpm -O minio.rpm

sudo dnf install minio.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,具体的内容如下:

[Unit]
Description=MinIO
Documentation=https://min.io/docs/minio/linux/index.html
Wants=network-online.target
After=network-online.target
AssertFileIsExecutable=/usr/local/bin/minio

[Service]
WorkingDirectory=/usr/local

User=minio-user
Group=minio-user
ProtectProc=invisible

EnvironmentFile=-/etc/default/minio
ExecStartPre=/bin/bash -c "if [ -z \"${MINIO_VOLUMES}\" ]; then echo \"Variable MINIO_VOLUMES not set in /etc/default/minio\"

; exit 1; fi"
ExecStart=/usr/local/bin/minio server $MINIO_OPTS $MINIO_VOLUMES

# Let systemd restart this 
service always
Restart=always

# Specifies the maximum file descriptor number that can be opened by this process
LimitNOFILE=65536

# Specifies the maximum number of threads this process can create
TasksMax=infinity

# Disable timeout logic and wait until process is stopped
TimeoutStopSec=infinity
SendSIGKILL=no

[Install]
WantedBy=multi-user.target

# Built for ${project.name}-${project.version} (${project.name})

默认情况下MinIO使用minio-user用户与minio-user用户组启动MinIO进程,故我们需要创建对应的用户与组,具体命令如下:

[root@localhost bin]# groupadd -r minio-user

[root@localhost bin]# useradd -M -r -g minio-user minio-user
# 主要是将minio需要用到的磁盘驱动器

设置为 minio-user:minio-user

[root@localhost bin]# chown minio-user:minio-user /data1 /data2 /data3 /data4

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_ROOT_USER and MINIO_ROOT_PASSWORD sets the root account for the MinIO server.
# 
This user has unrestricted permissions to perform S3 and administrative API operations 
on any resource in the deployment.
# Omit to use the default values 'minioadmin:minioadmin
'.
# MinIO recommends setting non-default values as a best practice, regardless of e
nvironment.

MINIO_ROOT_USER=myminioadmin
MINIO_ROOT_PASSWORD=minio-secret-key-change-me

# MINIO_VOLUMES sets the storage volumes or paths to use for the MinIO server.

# The specified path uses MinIO expansion notation to denote a sequential series of 
drives between 1 and 4, inclusive.
# All drives or paths included in the expanded drive 
list must exist *and* be empty or freshly formatted for MinIO to start successfully.

MINIO_VOLUMES="/data{1...4}"

# MINIO_SERVER_URL sets the hostname of the local machine
 for use with the MinIO Server.
# MinIO assumes your network control plane can correctly
 resolve this hostname to the local machine.

# Uncomment the following line and replace 
the value with the correct hostname for the local machine.

#MINIO_SERVER_URL="http://minio
.example.net"

其中MINIO_VOLUMES参数用于指定MinIO集群的磁盘,这里由于是单节点,所有省略了HOSTNAME。

Step4:启动MinIO

通过在节点上使用如下命令启动MinIO(如果分布式环境下,分别在不同节点执行该命令)。

systemctl start minio.service

命令执行后,我们可以使用如下命令查看minio是否启动成功

systemctl status minio.service

该命令运行的截图如下所示:

Linux에서 분산 MinIO 클러스터를 구축하기 위해 4개의 가상 디스크를 구축하는 방법은 무엇입니까?

其中Active(running)表示运行正常,并且可以看到Console的地址,我们可以在浏览器中输入console地址,打开MinIO内置的控制台:

Linux에서 분산 MinIO 클러스터를 구축하기 위해 4개의 가상 디스크를 구축하는 방법은 무엇입니까?

用户名、密码是配置在MinIO环境变量配置文件中,输入用户名、密码即可登录。

当然MinIO也提供了对应mc 客户端命令访问服务端,关于运维命令,将会在后续文章介绍。

并基于MinIO Console成功创建了Bucket并成功上传了文件,效果如下图所示:

Linux에서 분산 MinIO 클러스터를 구축하기 위해 4개의 가상 디스크를 구축하는 방법은 무엇입니까?

위 내용은 Linux에서 분산 MinIO 클러스터를 구축하기 위해 4개의 가상 디스크를 구축하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 lxlinux.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제