Linux で分散 MinIO クラスターを構築するために 4 つの仮想ディスクを構築するにはどうすればよいですか?
私は最近、オブジェクトストレージ関連システムの構築と安定運用保守を担当することになったので、「オブジェクトストレージ」の初心者として、この分野の学習を強化する必要があります。
現在、同社ではオブジェクト ストレージ システムの構築に MinIO を使用しているため、今後、MinIO について学んだ経験を少しずつ共有していきたいと思います。
この記事では主に、テスト環境での MinIO の構築方法を紹介しますが、これは MinIO 学習環境を構築する最も基本的な手順でもあります。
1. 実験環境を準備する
Oracle VM VirtualBox 仮想マシンを使用し、最小バージョンの Linux をインストールしてから、MinIO 仮想ディスクとして機能する 4 つの仮想ディスクを追加します。
実験環境は以下の通りです:

次に、仮想環境の構築について簡単に紹介します。
ステップ 1: 仮想ディスクを追加する具体的な方法:

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

Step2: [作成]をクリックしてディスクを作成します。操作は以下のとおりです。 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 アーキテクチャを使用することを強くお勧めします。
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
该命令运行的截图如下所示:

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

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

以上がLinux で分散 MinIO クラスターを構築するために 4 つの仮想ディスクを構築するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。


Linuxソフトウェア分布は、各分布のエコシステムに深く染み込んでおり、DEBやRPMなどのネイティブ形式に依存していました。 ただし、フラットパックとスナップが出現し、アプリケーションパッケージへの普遍的なアプローチが約束されています。 この記事試験

デバイスドライバーの取り扱いにおけるLinuxとWindowsの違いは、主にドライバー管理と開発環境の柔軟性に反映されています。 1。Linuxはモジュラー設計を採用し、ドライバーを動的にロードしてアンインストールできます。開発者は、カーネルメカニズムを深く理解する必要があります。 2。WindowsはMicrosoftエコシステムに依存しており、ドライバーはWDKを通じて開発して署名および認定される必要があります。開発は比較的複雑ですが、システムの安定性とセキュリティを保証します。

LinuxとWindowsのセキュリティモデルには、それぞれ独自の利点があります。 Linuxは、柔軟性とカスタマイズ可能性を提供し、ユーザーの権限、ファイルシステム許可、Selinux/Apparmorを通じてセキュリティを可能にします。 Windowsはユーザーフレンドリーに焦点を当てており、WindowsDefender、UAC、Firewall、BitLockerに依存してセキュリティを確保しています。

LinuxとWindowsはハードウェアの互換性が異なります。Windowsには広範なドライバーサポートがあり、Linuxはコミュニティとベンダーに依存します。 Linux互換性の問題を解決するために、RTL818888EUドライバーリポジトリのクローニング、コンパイル、インストールなど、ドライバーを手動でコンパイルできます。 Windowsユーザーは、パフォーマンスを最適化するためにドライバーを管理する必要があります。

仮想化サポートのLinuxとWindowsの主な違いは次のとおりです。1)LinuxはKVMとXenを提供し、優れたパフォーマンスと柔軟性を備えており、高いカスタマイズ環境に適しています。 2)Windowsは、友好的なインターフェイスを備えたHyper-Vを介した仮想化をサポートし、Microsoftソフトウェアに依存する企業に適したMicrosoft Ecosystemと密接に統合されています。

Linuxシステム管理者の主なタスクには、システムの監視とパフォーマンスチューニング、ユーザー管理、ソフトウェアパッケージ管理、セキュリティ管理とバックアップ、トラブルシューティングと解像度、パフォーマンスの最適化、ベストプラクティスが含まれます。 1. TOP、HTOP、その他のツールを使用して、システムのパフォーマンスを監視し、チューニングします。 2。ユーザーADDコマンドおよびその他のコマンドを介して、ユーザーアカウントとアクセス許可を管理します。 3. APTとYUMを使用してソフトウェアパッケージを管理し、システムの更新とセキュリティを確保します。 4.ファイアウォールを構成し、ログを監視し、データバックアップを実行して、システムセキュリティを確保します。 5.ログ分析とツールの使用を通じてトラブルシューティングと解決。 6.カーネルパラメーターとアプリケーションの構成を最適化し、ベストプラクティスに従ってシステムのパフォーマンスと安定性を向上させます。

Linuxの学習は難しくありません。 1.Linuxは、UNIXに基づいたオープンソースオペレーティングシステムであり、サーバー、組み込みシステム、およびパーソナルコンピューターで広く使用されています。 2。ファイルシステムと許可管理を理解することが重要です。ファイルシステムは階層的であり、許可には読み取り、書き込み、実行が含まれます。 3。APTやDNFなどのパッケージ管理システムは、ソフトウェア管理を便利にします。 4。プロセス管理は、PSおよびTOPコマンドを通じて実装されます。 5. MKDIR、CD、Touch、Nanoなどの基本的なコマンドから学習を開始し、シェルスクリプトやテキスト処理などの高度な使用法を試してください。 6.許可問題などの一般的なエラーは、SudoとChmodを通じて解決できます。 7.パフォーマンスの最適化の提案には、HTOPを使用してリソースを監視すること、不要なファイルのクリーニング、SYの使用が含まれます


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

ホットトピック









