Linux에서 분산 MinIO 클러스터를 구축하기 위해 4개의 가상 디스크를 구축하는 방법은 무엇입니까?
저는 최근에 객체 스토리지 관련 시스템의 구축과 안정성 운영 및 유지 관리를 담당하기 시작했기 때문에 "객체 스토리지"의 초보자로서 이 분야에 대한 학습을 강화해야 합니다.
회사에서는 현재 회사의 객체 스토리지 시스템을 구축하기 위해 MinIO를 사용하고 있으므로 앞으로 MinIO에 대한 학습 경험을 점차적으로 공유할 예정입니다.
이 글에서는 테스트 환경에서 MinIO를 설정하는 방법을 주로 소개합니다 이는 MinIO 학습 환경 구축의 가장 기본적인 단계이기도 합니다.
1. 실험 환경을 준비하세요
Oracle VM VirtualBox 가상 머신을 사용하여 최소 버전의 Linux를 설치한 다음 4개의 가상 디스크를 추가하여 MinIO 가상 디스크로 사용하세요.
실험 환경은 다음과 같습니다.

다음으로 가상환경 구축에 대해 간략하게 소개하겠습니다.
1단계: 가상 디스크를 추가하는 구체적인 방법:

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

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

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
该命令运行的截图如下所示:

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

用户名、密码是配置在MinIO环境变量配置文件中,输入用户名、密码即可登录。
当然MinIO也提供了对应mc 客户端命令访问服务端,关于运维命令,将会在后续文章介绍。
并基于MinIO Console成功创建了Bucket并成功上传了文件,效果如下图所示:

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

장치 드라이버를 처리 할 때 Linux와 Windows의 차이점은 주로 운전자 관리 및 개발 환경의 유연성에 반영됩니다. 1. Linux는 모듈 식 설계를 채택하며 드라이버를 동적으로로드하고 제거 할 수 있습니다. 개발자는 커널 메커니즘을 심층적으로 이해해야합니다. 2. Windows는 Microsoft Ecosystem에 의존하며 운전자는 WDK를 통해 개발하고 서명 및 인증을 받아야합니다. 개발은 비교적 복잡하지만 시스템의 안정성과 보안을 보장합니다.

Linux와 Windows의 보안 모델에는 각각 고유 한 장점이 있습니다. Linux는 유연성 및 사용자 정의 가능성을 제공하여 사용자 권한, 파일 시스템 권한 및 Selinux/Apparmor를 통해 보안을 가능하게합니다. Windows는 사용자 친화성에 중점을두고 WindowsDefender, UAC, 방화벽 및 Bitlocker에 의존하여 보안을 보장합니다.

Linux와 Windows는 하드웨어 호환성이 다릅니다. Windows는 광범위한 드라이버 지원이 있으며 Linux는 커뮤니티 및 공급 업체에 따라 다릅니다. Linux 호환성 문제를 해결하려면 RTL8188EU 드라이버 리포지토리 복제, 컴파일 및 설치와 같은 드라이버를 수동으로 컴파일 할 수 있습니다. Windows 사용자는 성능을 최적화하기 위해 드라이버를 관리해야합니다.

가상화 지원에서 Linux와 Windows의 주요 차이점은 다음과 같습니다. 1) Linux는 KVM과 Xen을 제공하며, 높은 커스터마이징 환경에 적합한 뛰어난 성능과 유연성을 제공합니다. 2) Windows는 친숙한 인터페이스를 통해 Hyper-V를 통한 가상화를 지원하며 Microsoft 소프트웨어에 의존하는 기업에 적합한 Microsoft Ecosystem과 밀접하게 통합됩니다.

Linux 시스템 관리자의 주요 작업에는 시스템 모니터링 및 성능 조정, 사용자 관리, 소프트웨어 패키지 관리, 보안 관리 및 백업, 문제 해결 및 해상도, 성능 최적화 및 모범 사례가 포함됩니다. 1. 상단, HTOP 및 기타 도구를 사용하여 시스템 성능을 모니터링하고 조정하십시오. 2. 사용자 ADD 명령 및 기타 명령을 통해 사용자 계정 및 권한을 관리합니다. 3. APT 및 YUM을 사용하여 소프트웨어 패키지를 관리하여 시스템 업데이트 및 보안을 보장합니다. 4. 방화벽을 구성하고 로그를 모니터링하고 데이터 백업을 수행하여 시스템 보안을 보장합니다. 5. 로그 분석 및 공구 사용을 통해 문제를 해결하고 해결합니다. 6. 커널 매개 변수 및 응용 프로그램 구성을 최적화하고 모범 사례를 따라 시스템 성능 및 안정성을 향상시킵니다.

Linux를 배우는 것은 어렵지 않습니다. 1.Linux는 UNIX를 기반으로 한 오픈 소스 운영 체제이며 서버, 임베디드 시스템 및 개인용 컴퓨터에서 널리 사용됩니다. 2. 파일 시스템 및 권한 관리 이해가 핵심입니다. 파일 시스템은 계층 적이며 권한에는 읽기, 쓰기 및 실행이 포함됩니다. 3. APT 및 DNF와 같은 패키지 관리 시스템은 소프트웨어 관리를 편리하게 만듭니다. 4. 프로세스 관리는 PS 및 최고 명령을 통해 구현됩니다. 5. MKDIR, CD, Touch 및 Nano와 같은 기본 명령에서 학습을 시작한 다음 쉘 스크립트 및 텍스트 처리와 같은 고급 사용법을 사용해보십시오. 6. 권한 문제와 같은 일반적인 오류는 Sudo 및 CHMod를 통해 해결할 수 있습니다. 7. 성능 최적화 제안에는 HTOP을 사용하여 리소스 모니터링, 불필요한 파일 청소 및 SY 사용이 포함됩니다.

Linux 관리자의 평균 연봉은 미국에서 $ 75,000 ~ $ 95,000, 유럽에서는 40,000 유로에서 60,000 유로입니다. 급여를 늘리려면 다음과 같이 할 수 있습니다. 1. 클라우드 컴퓨팅 및 컨테이너 기술과 같은 새로운 기술을 지속적으로 배울 수 있습니다. 2. 프로젝트 경험을 축적하고 포트폴리오를 설정합니다. 3. 전문 네트워크를 설정하고 네트워크를 확장하십시오.

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


핫 AI 도구

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

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

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

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

인기 기사

뜨거운 도구

SublimeText3 영어 버전
권장 사항: Win 버전, 코드 프롬프트 지원!

ZendStudio 13.5.1 맥
강력한 PHP 통합 개발 환경

MinGW - Windows용 미니멀리스트 GNU
이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

Eclipse용 SAP NetWeaver 서버 어댑터
Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

Atom Editor Mac 버전 다운로드
가장 인기 있는 오픈 소스 편집기
