목차
1. 실험 환경을 준비하세요" >1. 실험 환경을 준비하세요
2. MinIO 배포" >2. MinIO 배포
2.1 설치 전 준비" >2.1 설치 전 준비
2.2 如何一步一步安装MinIO" >2.2 如何一步一步安装MinIO
시스템 튜토리얼 리눅스 Linux에서 분산 MinIO 클러스터를 구축하기 위해 4개의 가상 디스크를 구축하는 방법은 무엇입니까?

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

Feb 10, 2024 pm 04:48 PM
linux 리눅스 튜토리얼 리눅스 시스템 분산 배포 리눅스 명령 쉘 스크립트 임베디드리눅스 리눅스 시작하기 리눅스 학습

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

회사에서는 현재 회사의 객체 스토리지 시스템을 구축하기 위해 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

VSCODE에 필요한 컴퓨터 구성 VSCODE에 필요한 컴퓨터 구성 Apr 15, 2025 pm 09:48 PM

대 코드 시스템 요구 사항 : 운영 체제 : Windows 10 이상, MacOS 10.12 이상, Linux 배포 프로세서 : 최소 1.6GHz, 권장 2.0GHz 이상의 메모리 : 최소 512MB, 권장 4GB 이상의 저장 공간 : 최소 250MB, 권장 1GB 및 기타 요구 사항 : 안정 네트워크 연결, Xorg/Wayland (LINUX)

VSCODE는 확장자를 설치할 수 없습니다 VSCODE는 확장자를 설치할 수 없습니다 Apr 15, 2025 pm 07:18 PM

VS 코드 확장을 설치하는 이유는 다음과 같습니다. 네트워크 불안정성, 불충분 한 권한, 시스템 호환성 문제, C 코드 버전은 너무 오래된, 바이러스 백신 소프트웨어 또는 방화벽 간섭입니다. 네트워크 연결, 권한, 로그 파일, 업데이트 대 코드 업데이트, 보안 소프트웨어 비활성화 및 대 코드 또는 컴퓨터를 다시 시작하면 점차 문제를 해결하고 해결할 수 있습니다.

Apr 16, 2025 pm 07:39 PM

메모장은 Java 코드를 직접 실행할 수는 없지만 다른 도구를 사용하여 명령 줄 컴파일러 (Javac)를 사용하여 Bytecode 파일 (filename.class)을 생성하면 달성 할 수 있습니다. Java Interpreter (Java)를 사용하여 바이트 코드를 해석하고 코드를 실행하고 결과를 출력하십시오.

VScode 란 무엇입니까? VScode 란 무엇입니까? Apr 15, 2025 pm 06:45 PM

VS Code는 Full Name Visual Studio Code로, Microsoft가 개발 한 무료 및 오픈 소스 크로스 플랫폼 코드 편집기 및 개발 환경입니다. 광범위한 프로그래밍 언어를 지원하고 구문 강조 표시, 코드 자동 완료, 코드 스 니펫 및 스마트 프롬프트를 제공하여 개발 효율성을 향상시킵니다. 풍부한 확장 생태계를 통해 사용자는 디버거, 코드 서식 도구 및 GIT 통합과 같은 특정 요구 및 언어에 확장을 추가 할 수 있습니다. VS 코드에는 코드에서 버그를 신속하게 찾아서 해결하는 데 도움이되는 직관적 인 디버거도 포함되어 있습니다.

vScode를 Mac에 사용할 수 있습니다 vScode를 Mac에 사용할 수 있습니다 Apr 15, 2025 pm 07:36 PM

VS 코드는 Mac에서 사용할 수 있습니다. 강력한 확장, GIT 통합, 터미널 및 디버거가 있으며 풍부한 설정 옵션도 제공합니다. 그러나 특히 대규모 프로젝트 또는 고도로 전문적인 개발의 경우 VS 코드는 성능 또는 기능 제한을 가질 수 있습니다.

vscode를 사용하는 방법 vscode를 사용하는 방법 Apr 15, 2025 pm 11:21 PM

Visual Studio Code (VSCODE)는 Microsoft가 개발 한 크로스 플랫폼, 오픈 소스 및 무료 코드 편집기입니다. 광범위한 프로그래밍 언어에 대한 가볍고 확장 성 및 지원으로 유명합니다. VSCODE를 설치하려면 공식 웹 사이트를 방문하여 설치 프로그램을 다운로드하고 실행하십시오. VScode를 사용하는 경우 새 프로젝트를 만들고 코드 편집, 디버그 코드, 프로젝트 탐색, VSCODE 확장 및 설정을 관리 할 수 ​​있습니다. VSCODE는 Windows, MacOS 및 Linux에서 사용할 수 있으며 여러 프로그래밍 언어를 지원하며 Marketplace를 통해 다양한 확장을 제공합니다. 이점은 경량, 확장 성, 광범위한 언어 지원, 풍부한 기능 및 버전이 포함됩니다.

Linux의 주요 목적은 무엇입니까? Linux의 주요 목적은 무엇입니까? Apr 16, 2025 am 12:19 AM

Linux의 주요 용도에는 다음이 포함됩니다. 1. 서버 운영 체제, 2. 임베디드 시스템, 3. 데스크탑 운영 체제, 4. 개발 및 테스트 환경. Linux는이 분야에서 뛰어나 안정성, 보안 및 효율적인 개발 도구를 제공합니다.

git의 창고 주소를 확인하는 방법 git의 창고 주소를 확인하는 방법 Apr 17, 2025 pm 01:54 PM

git 저장소 주소를 보려면 다음 단계를 수행하십시오. 1. 명령 줄을 열고 리포지토리 디렉토리로 이동하십시오. 2. "git remote -v"명령을 실행하십시오. 3. 출력 및 해당 주소에서 저장소 이름을 봅니다.

See all articles