ホームページ  >  記事  >  システムチュートリアル  >  Linux で分散 MinIO クラスターを構築するために 4 つの仮想ディスクを構築するにはどうすればよいですか?

Linux で分散 MinIO クラスターを構築するために 4 つの仮想ディスクを構築するにはどうすればよいですか?

王林
王林転載
2024-02-10 16:48:131136ブラウズ

私は最近、オブジェクトストレージ関連システムの構築と安定運用保守を担当することになったので、「オブジェクトストレージ」の初心者として、この分野の学習を強化する必要があります。

現在、同社ではオブジェクト ストレージ システムの構築に MinIO を使用しているため、今後、MinIO について学んだ経験を少しずつ共有していきたいと思います。

この記事では主に、テスト環境での MinIO の構築方法を紹介しますが、これは MinIO 学習環境を構築する最も基本的な手順でもあります。

1. 実験環境を準備する

Oracle VM VirtualBox 仮想マシンを使用し、最小バージョンの Linux をインストールしてから、MinIO 仮想ディスクとして機能する 4 つの仮想ディスクを追加します。

実験環境は以下の通りです:

Linux で分散 MinIO クラスターを構築するために 4 つの仮想ディスクを構築するにはどうすればよいですか?

次に、仮想環境の構築について簡単に紹介します。

ステップ 1: 仮想ディスクを追加する具体的な方法:

Linux で分散 MinIO クラスターを構築するために 4 つの仮想ディスクを構築するにはどうすればよいですか?

操作パス: [設定]-[ストレージ]、SATA を制御する [プラス記号] を追加します。

Linux で分散 MinIO クラスターを構築するために 4 つの仮想ディスクを構築するにはどうすればよいですか?

Step2: [作成]をクリックしてディスクを作成します。操作は以下のとおりです。 4 つのディスクを作成した後、サーバーを再起動します。

Linux で分散 MinIO クラスターを構築するために 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 は 3 つの展開アーキテクチャをサポートします:

シングルノード シングルドライブ (SNSD または「スタンドアロン」) シングルノード シングルドライブ

    シングルノード マルチドライブ (SNMD または「スタンドアロン マルチドライブ」) 擬似分散されたシングルノード マルチドライブでは、エラー修正コードなどの運用機能を使用できます。
  • マルチノード マルチドライブ (MNMD または「分散」) マルチノード マルチドライブは、分散展開アーキテクチャであり、運用環境に強く推奨されます。
  • テスト リソースが限られているため、この記事では構築に単一ノード マルチドライブを使用します。
  • SNMD 導入アーキテクチャは、ドライブ (ディスク) フォールト トレランスをサポートしています。運用環境では MNMD アーキテクチャを使用することを強くお勧めします。

2.1 インストール前の準備

MinIO では、最高のパフォーマンスを得るために、直接接続された JBOD アレイと xfs フォーマットのディスクを強く推奨します。

DAS (直接接続ストレージ) は、ネットワーク ストレージ (NAS、SAN、NFS) と比較して、パフォーマンスと一貫性において大きな利点があります。 非 xfs ファイル システム (ext4、btrfs、zfs) を使用するデプロイメントでは、パフォーマンスが低下することがよくありますが、同時に、ext4 などのファイル ストレージには 1 つのディレクトリ内のファイル数に制限があり、可用性に容易に影響を与える可能性があります。 。

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包,命令如下:

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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はlxlinux.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。