Da ich als Neuling im Bereich „Objektspeicher“ erst seit kurzem für den Aufbau und die Stabilität, den Betrieb und die Wartung von Objektspeichersystemen verantwortlich bin, muss ich mein Wissen in diesem Bereich vertiefen.
Da das Unternehmen derzeit MinIO zum Aufbau des Objektspeichersystems des Unternehmens verwendet, werde ich in Zukunft nach und nach meine Lernerfahrungen zu MinIO teilen. Jeder ist herzlich eingeladen, weiterhin aufmerksam zu sein.
In diesem Artikel wird hauptsächlich die Einrichtung von MinIO in einer Testumgebung vorgestellt. Dies ist auch der grundlegendste Schritt beim Aufbau einer MinIO-Lernumgebung.
Die experimentelle Umgebung ist wie folgt:
Lassen Sie mich als Nächstes kurz die Einrichtung der virtuellen Umgebung vorstellen.
Schritt 1: Spezifische Methode zum Hinzufügen einer virtuellen Festplatte:
Bedienungspfad: [Einstellungen]-[Speicher], [Pluszeichen] hinzufügen, um SATA zu steuern
Schritt 2: Klicken Sie auf [Erstellen], um eine Festplatte zu erstellen. Der Vorgang ist wie in der Abbildung unten dargestellt:
Nachdem Sie vier Festplatten erstellt haben, starten Sie den Server neu.
Schritt 3: Überprüfen Sie, ob das Betriebssystem die Festplatte erkennt
Zuerst können wirlsblk ausführen, die Ausführungsergebnisse sind wie folgt:
[root@localhost ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 50G 0 disk ├─sda1 8:1 0 1G 0 part /boot └─sda2 8:2 0 49G 0 part ├─centos-root 253:0 0 45.1G 0 lvm / └─centos-swap 253:1 0 3.9G 0 lvm [SWAP] sdb 8:16 0 10G 0 disk sdc 8:32 0 10G 0 disk sdd 8:48 0 10G 0 disk sde 8:64 0 10G 0 disk sr0 11:0 1 1024M 0 rom
Aber zu diesem Zeitpunkt können diese Datenträger mit dem Befehl df -h nicht angezeigt werden. Die Ergebnisse sind wie folgt:
[root@localhost ~]# df -h 文件系统 容量 已用 可用 已用% 挂载点 devtmpfs 1.9G 0 1.9G 0% /dev tmpfs 1.9G 0 1.9G 0% /dev/shm tmpfs 1.9G 8.7M 1.9G 1% /run tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup /dev/mapper/centos-root 46G 1.3G 44G 3% / /dev/sda1 1014M 151M 864M 15% /boot tmpfs 379M 0 379M 0% /run/user/0
[root@localhost ~]# fdisk -l 磁盘 /dev/sde:10.7 GB, 10737418240 字节,20971520 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘 /dev/sdd:10.7 GB, 10737418240 字节,20971520 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘 /dev/sdc:10.7 GB, 10737418240 字节,20971520 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘 /dev/sda:53.7 GB, 53687091200 字节,104857600 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘标签类型:dos 磁盘标识符:0x000b5407 设备 Boot Start End Blocks Id System /dev/sda1 * 2048 2099199 1048576 83 Linux /dev/sda2 2099200 104857599 51379200 8e Linux LVM 磁盘 /dev/sdb:10.7 GB, 10737418240 字节,20971520 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘 /dev/mapper/centos-root:48.4 GB, 48444211200 字节,94617600 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘 /dev/mapper/centos-swap:4160 MB, 4160749568 字节,8126464 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节
Schritt 4: Erstellen Sie eine Partition, formatieren Sie die Festplatte und mounten Sie sie in eine Datei. Die spezifischen Befehle lauten wie folgt:
[root@localhost ~]# fdisk /dev/sdb 欢迎使用 fdisk (util-linux 2.23.2)。 更改将停留在内存中,直到您决定将更改写入磁盘。 使用写入命令前请三思。 Device does not contain a recognized partition table 使用磁盘标识符 0x2bb131bd 创建新的 DOS 磁盘标签。 命令(输入 m 获取帮助):m 命令操作 a toggle a bootable flag b edit bsd disklabel c toggle the dos compatibility flag d delete a partition g create a new empty GPT partition table G create an IRIX (SGI) partition table l list known partition types m print this menu n add a new partition,创建一个分区 o create a new empty DOS partition table p print the partition table q quit without saving changes s create a new empty Sun disklabel t change a partition's system id u change display/entry units v verify the partition table w write table to disk and exit x extra functionality (experts only) 命令(输入 m 获取帮助):n Partition type: p primary (0 primary, 0 extended, 4 free) e extended Select (default p): p 分区号 (1-4,默认 1):1 起始 扇区 (2048-20971519,默认为 2048): 将使用默认值 2048 Last 扇区, +扇区 or +size{K,M,G} (2048-20971519,默认为 20971519): 将使用默认值 20971519 分区 1 已设置为 Linux 类型,大小设为 10 GiB 命令(输入 m 获取帮助):w The partition table has been altered! Calling ioctl() to re-read partition table. 正在同步磁盘。 ## 这里格式为ext4,如果是新搭建MinIO集群,文件存储系统强烈推荐使用xfs,对应的命令:mkfs.xfs /dev/sdb [root@localhost ~]# mkfs.ext4 /dev/sdb mke2fs 1.42.9 (28-Dec-2013) /dev/sdb is entire device, not just one partition! 无论如何也要继续? (y,n) y 文件系统标签= OS type: Linux 块大小=4096 (log=2) 分块大小=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 655360 inodes, 2621440 blocks 131072 blocks (5.00%) reserved for the super user 第一个数据块=0 Maximum filesystem blocks=2151677952 80 block groups 32768 blocks per group, 32768 fragments per group 8192 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632 Allocating group tables: 完成 正在写入inode表: 完成 Creating journal (32768 blocks): 完成 Writing superblocks and filesystem accounting information: 完成 [root@localhost ~]# mkdir /data1 # 注释:挂载到文件系统 /data1 [root@localhost ~]# mount -t ext4 /dev/sdb /data1 [root@localhost ~]# df -h 文件系统 容量 已用 可用 已用% 挂载点 devtmpfs 1.9G 0 1.9G 0% /dev tmpfs 1.9G 0 1.9G 0% /dev/shm tmpfs 1.9G 8.7M 1.9G 1% /run tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup /dev/mapper/centos-root 46G 1.3G 44G 3% / /dev/sda1 1014M 151M 864M 15% /boot tmpfs 379M 0 379M 0% /run/user/0 /dev/sdb 9.8G 37M 9.2G 1% /data1
Der endgültige Ausführungseffekt ist wie folgt:
[root@localhost ~]# df -h 文件系统 容量 已用 可用 已用% 挂载点 devtmpfs 1.9G 0 1.9G 0% /dev tmpfs 1.9G 0 1.9G 0% /dev/shm tmpfs 1.9G 8.7M 1.9G 1% /run tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup /dev/mapper/centos-root 46G 1.3G 44G 3% / /dev/sda1 1014M 151M 864M 15% /boot tmpfs 379M 0 379M 0% /run/user/0 /dev/sdb 9.8G 37M 9.2G 1% /data1 /dev/sdc 9.8G 37M 9.2G 1% /data2 /dev/sdd 9.8G 37M 9.2G 1% /data3 /dev/sde 9.8G 37M 9.2G 1% /data4
Die SNMD-Bereitstellungsarchitektur unterstützt die Fehlertoleranz von Laufwerken (Festplatten). Es wird dringend empfohlen, die MNMD-Architektur in Produktionsumgebungen zu verwenden.
MinIO empfiehlt dringend direkt angeschlossene JBOD-Arrays und Festplatten im XFS-Format für optimale Leistung.
DAS (Direct-Attached Storage) bietet im Vergleich zu Netzwerkspeicher (NAS, SAN, NFS) erhebliche Leistungs- und Konsistenzvorteile.Bereitstellungen mit Nicht-XFS-Dateisystemen (ext4, btrfs, zfs) weisen häufig eine geringere Leistung auf. Gleichzeitig ist die Anzahl der Dateien in einem einzelnen Verzeichnis bei Dateispeichern wie ext4 begrenzt, was sich leicht auf die Verfügbarkeit auswirken kann.
Minio hat von Natur aus den Vorteil der verteilten Speicherung und verwendet intern Erasure Coding.
RAID oder ähnliche Technologien können keine zusätzlichen Elastizitäts- oder Verfügbarkeitsvorteile bieten und verringern normalerweise die Systemleistung.
Bitte stellen Sie sicher, dass alle Knoten im Serverpool denselben Laufwerkstyp (NVMe, SSD oder HDD) verwenden und über die gleiche Kapazität verfügen. MinIO unterscheidet nicht zwischen Laufwerkstypen und kann nicht von der Mischung von Speichertypen profitieren. Auch. MinIO begrenzt die Größe jedes Laufwerks auf die Kapazität des kleinsten Laufwerks in der Bereitstellung. Wenn eine Bereitstellung beispielsweise über 15 10-TB-Laufwerke und 1 1-TB-Laufwerk verfügt, begrenzt MinIO die Kapazität jedes Laufwerks auf 1 TB.
MinIO需要使用展开符号{x…y}用来表示Server Pool中每一个节点的一组磁盘驱动器,并且要求Server Pool中所有节点的磁盘驱动器序列相同。MinIO还要求物理驱动器的顺序在重新启动时保持不变,这样给定的挂载点总是指向相同的格式化驱动器。 Step1:根据不同的操作系统与CPU架构,下载对应的安装包,例如当前虚拟机是amd,我们下载对应的RPM包,命令如下: 通过该命令安装后,有关MinIO相关文件: 如果是使用二进制文件直接安装,其实就是要创建如上三个文件。 Step2:创建systemd系统服务文件 如果是基于rpm或者deb包进行安装的话,会自动创建systemd系统服务文件,如果是二级制安装模式,就需要自动创建该文件,文件的全路径为/etc/systemd/system/minio.service,具体的内容如下: 默认情况下MinIO使用minio-user用户与minio-user用户组启动MinIO进程,故我们需要创建对应的用户与组,具体命令如下: 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_VOLUMES参数用于指定MinIO集群的磁盘,这里由于是单节点,所有省略了HOSTNAME。 Step4:启动MinIO 通过在节点上使用如下命令启动MinIO(如果分布式环境下,分别在不同节点执行该命令)。 命令执行后,我们可以使用如下命令查看minio是否启动成功2.2 如何一步一步安装MinIO
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
[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})
[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
# 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"
systemctl start minio.service
systemctl status minio.service
该命令运行的截图如下所示:
其中Active(running)表示运行正常,并且可以看到Console的地址,我们可以在浏览器中输入console地址,打开MinIO内置的控制台:
用户名、密码是配置在MinIO环境变量配置文件中,输入用户名、密码即可登录。
当然MinIO也提供了对应mc 客户端命令访问服务端,关于运维命令,将会在后续文章介绍。
并基于MinIO Console成功创建了Bucket并成功上传了文件,效果如下图所示:
Das obige ist der detaillierte Inhalt vonWie erstellt man 4 virtuelle Festplatten, um einen verteilten MinIO-Cluster unter Linux aufzubauen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!