Minio distributed cluster deployment (4 nodes 4 clusters)
Centos7.6
Minio
- Minio distributed cluster deployment (4 nodes 4 clusters)
- 1.Environment preparation
- 2-Add new disk and mount it
- 3. Install minio cluster
- 4. Configure systemctl system service
- 5. Login page testing
1. Environment preparation
4 servers with multiple hard drives
Node data directory (cannot be under /root) process/script directory 192.168.156.2 /data1/minio/{<!-- -->data1.data2} /opt/apps/minio 192.168.156.3 /data1/minio/{<!-- -->data1.data2} /opt/apps/minio 192.168.156.4 /data1/minio/{<!-- -->data1.data2} /opt/apps/minio 192.168.156.5 /data1/minio/{<!-- -->data1.data2} /opt/apps/minio
4 servers with single hard drive (this time)
Node data directory (cannot be under /root) process/script directory 192.168.156.2 /data1/minio/data /opt/apps/minio 192.168.156.3 /data1/minio/data /opt/apps/minio 192.168.156.4 /data1/minio/data /opt/apps/minio 192.168.156.5 /data1/minio/data /opt/apps/minio
Time guarantee synchronization
All nodes
[root@localhost ~]# date #If the time changes, [root@localhost ~]# date -s 17:08
Modify the host name and hosts file
All nodes
#Permanently modify the host name [root@localhost ~]# hostnamectl set-hostname sp-001 [root@localhost ~]# bash #Modify mapping [root@sd-001 ~]# vim /etc/hosts #Add to 192.168.156.2 sp-001 192.168.156.3 sp-002 192.168.156.4 sp-003 192.168.156.5 sp-004
Prepare installation package
#Download address wget https://dl.minio.io/server/minio/release/linux-amd64/minio [root@sp-001 ~]# ll -rw-r--r-- 1 root root 94044160 Nov 9 12:13 minio
2-Add new disk and mount
List information about all available block devices
[root@docker01 ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sdb 8:16 0 22G 0 disk #Such as the disk just added
new disk partition
[root@docker01 ~]# fdisk /dev/sdb Command (enter m for help): m #m Command (enter m for help): n #n Select (default p): p #p Partition number (1-4, default 1): 1 #1 Starting sector (2048-46137343, default is 2048): #Enter Last sector, + sector (2048-46137343, default is 46137343): #Enter (all allocated) Command (enter m for help): w #Save
View disk information
[root@docker01 ~]# lsblk -f NAME FSTYPE LABEL UUID MOUNTPOINT sdb └─sdb1 #Existing sdb1 partition
Format disk
[root@docker01 ~]# mkfs -t ext4 /dev/sdb1
mount
[root@docker01 ~]# mkdir /data1 [root@docker01 ~]# mount /dev/sdb2 /data1/ #View mounting information [root@docker01 ~]# df -h File System Capacity Used Available % Used Mount Points /dev/sdb2 22G 45M 21G 1% /data1 #21G has been mounted to /data1
Automatically mount on boot
[root@minio-1 ~]# vi /etc/rc.d/rc.local #Add to: mount /dev/vdb1 /data1/
Give the file execution permission
[root@minio-1 ~]# chmod + x /etc/rc.d/rc.local
3. Install minio cluster
Create the installation directory
First node
[root@sp-001 ~]# mkdir -p /opt/apps/minio
Move the installation package to the installation directory and other servers
First node
[root@sp-001 ~]# mv minio /opt/apps/minio/ [root@sp-001 ~]# scp -r /opt/apps/minio/ 192.168.156.3:/opt/apps/ [root@sp-001 ~]# scp -r /opt/apps/minio/ 192.168.156.4:/opt/apps/ [root@sp-001 ~]# scp -r /opt/apps/minio/ 192.168.156.5:/opt/apps/
Create directory
All nodes
[root@sp-001 ~]# mkdir -p /data1/minio/data/ #Data directory [root@sp-001 ~]# mkdir -p /data1/minio/logs/ #Log directory [root@sp-001 ~]# mkdir -p /etc/minio #Configuration file directory
Cluster startup file description
#1.Minio defaults to port 9000. Add –address “127.0.0.1:9029” to the configuration file to change the port. #2.MINIO_ACCESS_KEY: User name, the minimum length is 5 characters #3.MINIO_SECRET_KEY: Password. The password cannot be set too simple, otherwise minio will fail to start. The minimum length is 8 characters. #4.–config-dir: Specify the cluster configuration file directory
Node 1 startup script
[root@sp-001 ~]# vim /opt/apps/minio/minio-run.sh #新add #!/bin/bash export MINIO_ACCESS_KEY=mhsp export MINIO_SECRET_KEY=mhsp@1234 /opt/apps/minio/minio server --config-dir /etc/minio \ --address "192.168.156.2:9000" \ http://192.168.156.2/data1/minio/data \ http://192.168.156.3/data1/minio/data \ http://192.168.156.4/data1/minio/data \ http://192.168.156.5/data1/minio/data > /data/minio/logs/minio.log
Node 2 startup script
[root@sp-002 ~]# vim /opt/apps/minio/minio-run.sh #新add #!/bin/bash export MINIO_ACCESS_KEY=mhsp export MINIO_SECRET_KEY=mhsp@1234 /opt/apps/minio/minio server --config-dir /etc/minio \ --address "192.168.156.3:9000" \ http://192.168.156.2/data1/minio/data \ http://192.168.156.3/data1/minio/data \ http://192.168.156.4/data1/minio/data \ http://192.168.156.5/data1/minio/data > /data/minio/logs/minio.log
Node 3 startup script
[root@sp-003 ~]# vim /opt/apps/minio/minio-run.sh #新add #!/bin/bash export MINIO_ACCESS_KEY=mhsp export MINIO_SECRET_KEY=mhsp@1234 /opt/apps/minio/minio server --config-dir /etc/minio \ --address "192.168.156.4:9000" \ http://192.168.156.2/data1/minio/data \ http://192.168.156.3/data1/minio/data \ http://192.168.156.4/data1/minio/data \ http://192.168.156.5/data1/minio/data > /data/minio/logs/minio.log
Node 4 startup script
[root@sp-004 ~]# vim /opt/apps/minio/minio-run.sh #新add #!/bin/bash export MINIO_ACCESS_KEY=mhsp export MINIO_SECRET_KEY=mhsp@1234 /opt/apps/minio/minio server --config-dir /etc/minio \ --address "192.168.156.5:9000" \ http://192.168.156.2/data1/minio/data \ http://192.168.156.3/data1/minio/data \ http://192.168.156.4/data1/minio/data \ http://192.168.156.5/data1/minio/data > /data/minio/logs/minio.log
Multi-hard disk (multi-directory) startup script – sample
#!/bin/bash export MINIO_ACCESS_KEY=admin export MINIO_SECRET_KEY=admin123 /home/minio/run/minio server --config-dir /etc/minio \ --address "10.34.252.93:9000" \ http://10.34.252.87/home/minio/data1 http://10.34.252.87/home/minio/data2 \ http://10.34.252.88/home/minio/data1 http://10.34.252.88/home/minio/data2 \ http://10.34.252.89/home/minio/data1 http://10.34.252.89/home/minio/data2 \ http://10.34.252.93/home/minio/data1 http://10.34.252.93/home/minio/data2
4. Configure systemctl system service
Create Minio.server and add minio to the system service
All nodes
[root@sp-001 ~]# vim /etc/systemd/system/minio.service #新add [Unit] Description=Minio service Documentation=https://docs.minio.io/ [Service] WorkingDirectory=/opt/apps/minio/ ExecStart=/opt/apps/minio/minio-run.sh Restart=on-failure RestartSec=5 [Install] WantedBy=multi-user.target
Load configuration
All nodes
[root@sp-001 ~]# systemctl daemon-reload
Permission modification
All nodes
[root@sp-001 ~]# chmod + x /opt/apps/minio/minio & amp; & amp; chmod + x /opt/apps/minio/minio-run.sh
Start the cluster and automatically start
all nodes
[root@sp-001 ~]# systemctl start minio [root@sp-001 ~]# systemctl enable minio
View cluster status
root@sp-001 ~]# systemctl status minio.service -l ● minio.service - Minio service Loaded: loaded (/etc/systemd/system/minio.service; enabled; vendor preset: disabled) Active: active (running) since Tue 2021-11-23 21:32:06 CST; 14h ago Docs: https://docs.minio.io/ Main PID: 19733 (minio-run.sh) CGroup: /system.slice/minio.service ├─19733 /bin/bash /opt/apps/minio/minio-run.sh └─19758 /opt/apps/minio/minio server --config-dir /etc/minio --address 192.168.156.2:9000 http://192.168.156.2/data/minio/data http://192.168.156.3/ data/minio/data http://192.168.156.4/data/minio/data http://192.168.156.5/data/minio/data Nov 24 sp-001 minio-run.sh[19733]: Error: Disk: http://192.168.156.3:9000/data/minio/data returned disk not found (*fmt.wrapError) Nov sp-001 minio-run.sh[19733]: endpoint=http://192.168.156.3:9000/data/minio/data Nov sp-001 minio-run.sh[19733]: 2: cmd/prepare-storage.go:52:cmd.glob..func7.1() Nov sp-001 minio-run.sh[19733]: 1: cmd/erasure-sets.go:218:cmd.(*erasureSets).connectDisks.func1() Nov sp-001 minio-run.sh[19733]: Client http://192.168.156.4:9000/minio/lock/v6 online Nov sp-001 minio-run.sh[19733]: Client http://192.168.156.4:9000/minio/s.../data/v29 online Nov sp-001 minio-run.sh[19733]: Client http://192.168.156.5:9000/minio/lock/v6 online Nov sp-001 minio-run.sh[19733]: Client http://192.168.156.5:9000/minio/st.io/data/v29 online Nov sp-001 minio-run.sh[19733]: Client http://192.168.156.3:9000/minio/storage.o/data/v29 online Nov sp-001 minio-run.sh[19733]: Client http://192.168.156.3:9000/minio/lock/v6 online
5. Login page test
Visit any address
http://192.168.156.2:9000 http://192.168.156.3:9000 http://192.168.156.4:9000 http://192.168.156.5:9000
Create bucket
>Upload files in the newly created bucket
Check the four minio data directories (the data storage directory cannot be the /root directory, otherwise an error will be reported)
#Enter the data directory [root@hhht-1 ~]# cd /data1/minio/data/ #The c1-n1-bk1 directory just created exists [root@hhht-1 data]#ll drwxr-xr-x 5 root root 4096 Nov 8 12:00 c1-n1-bk1 #Enter the directory, the uploaded file exists [root@hhht-1 data]# cd c1-n1-bk1/ [root@hhht-1 c1-n1-bk1]# ll drwxr-xr-x 2 root root 4096 Nov 8 11:56 hosts drwxr-xr-x 3 root root 4096 Nov 8 12:00 redis-3.0.0.gem drwxr-xr-x 2 root root 4096 Nov 8 11:59 Inner Mongolia host table.xlsx
#Check that the c1-n1-bk1 directories and files on the other three servers exist