2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Viralliset asiakirjat:https://min.io/docs/minio/linux/operations/install-deploy-manage/deploy-minio-multi-node-multi-drive.html
Tämä ratkaisu käyttää MinIO:ta, joka on otettu käyttöön monisolmun moniohjainkokoonpanossa (MNMD) tai "hajautetussa" kokoonpanossa. MNMD-asennukset tarjoavat yritystason suorituskyvyn, saatavuuden ja skaalautuvuuden, ja ne ovat suositeltu topologia kaikille tuotantotyökuormille.
MNMD-asennukset tukevat poistokoodauskokoonpanoja, jotka voivat sietää jopa puolet käyttöönoton solmuista tai asemista menettämisen samalla, kun palvelulukutoimintoja jatketaan.
Klusterin käyttöönottovaatimukset
Solmun suunnittelu ja levysuunnittelu ovat seuraavat: Jokainen solmu valmistelee neljä levyä:
Solmun nimi | Solmun IP | minilevy | kiinnityskohta | käyttöjärjestelmä |
---|---|---|---|---|
minio1.example.com | 192.168.72.51 | /dev/sdb /dev/sdc /dev/sdd /dev/sde | /var/lib/minio/data1 /var/lib/minio/data2 /var/lib/minio/data3 /var/lib/minio/data4 | Ubuntu 22.04 |
minio2.example.com | 192.168.72.52 | /dev/sdb /dev/sdc /dev/sdd /dev/sde | /var/lib/minio/data1 /var/lib/minio/data2 /var/lib/minio/data3 /var/lib/minio/data4 | Ubuntu 22.04 |
minio3.example.com | 192.168.72.53 | /dev/sdb /dev/sdc /dev/sdd /dev/sde | /var/lib/minio/data1 /var/lib/minio/data2 /var/lib/minio/data3 /var/lib/minio/data4 | Ubuntu 22.04 |
minio4.example.com | 192.168.72.54 | /dev/sdb /dev/sdc /dev/sdd /dev/sde | /var/lib/minio/data1 /var/lib/minio/data2 /var/lib/minio/data3 /var/lib/minio/data4 | Ubuntu 22.04 |
lb1.example.com | 192.168.72.55 | - | - | Ubuntu 22.04 |
lb2.example.com | 192.168.72.56 | - | - | Ubuntu 22.04 |
VIP | 192.168.72.100 | - | - | - |
Kuvaus: VIP-osoite ratkaiseeminio.example.com
Verkkotunnus toimii yhtenäisenä sisäänkäynninä.
http://minio.example.com
http://minio.example.com/minio/ui
Klusterin arkkitehtuuri on seuraava:
Kaikille minisolmuille on määritetty isäntänimiä vastaavasti.
hostnamectl set-hostname minio1.example.com
hostnamectl set-hostname minio2.example.com
hostnamectl set-hostname minio3.example.com
hostnamectl set-hostname minio4.example.com
Kaikki minisolmut on määritetty isäntäresoluutiolla erikseen.
cat >/etc/hosts<<EOF
192.168.72.51 minio1.example.com
192.168.72.52 minio2.example.com
192.168.72.53 minio3.example.com
192.168.72.54 minio4.example.com
EOF
Kaikki minisolmun määritysajat synkronoidaan.
Minio-monisolmujärjestelmien on pidettävä aika ja päivämäärä synkronoituina ylläpitääkseen vakaata solmujen välistä toimintaa ja vuorovaikutusta.
apt install -y chrony
systemctl enable --now chrony
timedatectl set-timezone Asia/Shanghai
Jokaiseen solmuun asennetaan 4 levyä, joista sda on järjestelmälevy:
root@minio1:~# lsblk -d -n -o NAME | grep '^sd'
sda
sdb
sdc
sdd
sde
Luo jokaiseen solmuun neljä hakemistoa neljän aseman liittämistä varten:
sudo mkdir -p /var/lib/minio/data1
sudo mkdir -p /var/lib/minio/data2
sudo mkdir -p /var/lib/minio/data3
sudo mkdir -p /var/lib/minio/data4
Alusta jokaisessa solmussa erikseen levy XFS-tiedostojärjestelmään:
sudo mkfs.xfs /dev/sdb -L DISK1
sudo mkfs.xfs /dev/sdc -L DISK2
sudo mkfs.xfs /dev/sdd -L DISK3
sudo mkfs.xfs /dev/sde -L DISK4
Määritä automaattinen asennus
cat >>/etc/fstab<<EOF
LABEL=DISK1 /var/lib/minio/data1 xfs defaults,noatime 0 2
LABEL=DISK2 /var/lib/minio/data2 xfs defaults,noatime 0 2
LABEL=DISK3 /var/lib/minio/data3 xfs defaults,noatime 0 2
LABEL=DISK4 /var/lib/minio/data4 xfs defaults,noatime 0 2
EOF
asenna kaikki sisään /etc/fstab
Tiedostojärjestelmä määritetty tiedostoon, mutta ei vielä liitetty
sudo mount -av
Varmista, että tiedostojärjestelmä on asennettu oikein
root@minio1:~# df -hT
......
/dev/sdb xfs 100G 746M 100G 1% /var/lib/minio/data1
/dev/sdc xfs 100G 746M 100G 1% /var/lib/minio/data2
/dev/sdd xfs 100G 746M 100G 1% /var/lib/minio/data3
/dev/sde xfs 100G 746M 100G 1% /var/lib/minio/data4
Asenna MinIO käyttämällä deb-pakettia jokaiseen solmuun erikseen
wget https://dl.min.io/server/minio/release/linux-amd64/archive/minio_20240704142545.0.0_amd64.deb -O minio.deb
sudo dpkg -i minio.deb
käyttää groupadd
jauseradd
Komennot käyttäjien ja ryhmien luomiseen
groupadd -r minio-user
useradd -M -r -g minio-user minio-user
chown -R minio-user:minio-user /var/lib/minio
olla olemassa /etc/default/minio
Luo ympäristötiedostoja. MinIO-palvelu käyttää tätä tiedostoa MinIO- jaminio.service
Kaikkien tiedoston käyttämien ympäristömuuttujien lähde.
cat >/etc/default/minio<<EOF
MINIO_VOLUMES="http://minio{1...4}.example.com:9000/var/lib/minio/data{1...4}/minio"
MINIO_OPTS="--console-address :9001"
MINIO_ROOT_USER=minioadmin
MINIO_ROOT_PASSWORD=Minio@123456
MINIO_BROWSER_REDIRECT_URL="http://minio.example.com/minio/ui"
EOF
Anna seuraava komento jokaisessa käyttöönoton solmussa MinIO-palvelun käynnistämiseksi. Useita solmuja on suoritettava samanaikaisesti peräkkäin.
sudo systemctl restart minio.service
Varmista seuraavalla komennolla, että palvelu on online-tilassa ja toimii oikein:
sudo systemctl status minio.service
journalctl -f -u minio.service
Avaa selain ja käytä porttia :9001
mikä tahansa MinIO-isäntänimi avataksesi MinIO-konsolin kirjautumissivun.Esimerkiksi
http://minio1.example.com:9001
Käytä minio_root_user
jaminio_root_password
Kirjaudu sisään.
Voit käyttää MinIO-konsolia yleisten hallintatehtävien suorittamiseen, kuten identiteetin ja käyttöoikeuksien hallintaan, mittareiden ja lokien valvontaan tai palvelimen konfigurointiin. Jokainen MinIO-palvelin sisältää oman sulautetun MinIO-konsolin.
Viralliset asiakirjat:https://min.io/docs/minio/linux/integrations/setup-nginx-proxy-with-minio.html
käyttäänginx
jakeepalived
Kuormantasauksen saavuttamiseksi valmistele 2 palvelinta kuormituksen tasapainotussolmuiksi.
Määritä isäntänimi lb-solmuun vastaavasti.
hostnamectl set-hostname lb1.example.com
hostnamectl set-hostname lb2.example.com
Määritä isäntien resoluutio vastaavasti lb-solmuun.
cat >/etc/hosts<<EOF
192.168.72.55 lb1.example.com
192.168.72.56 lb2.example.com
192.168.72.51 minio1.example.com
192.168.72.52 minio2.example.com
192.168.72.53 minio3.example.com
192.168.72.54 minio4.example.com
EOF
Asenna nginx ja säilytä se kahdessa solmussa:
apt install -y nginx keepalived
Luo nginx-määritystiedosto, muokkaa palvelimen osoitetta ja mukauta kuunteluportti, kiinnitä huomiota muutoksiinserver_name
parametri:
cat > /etc/nginx/conf.d/minio-lb.conf <<'EOF'
upstream minio_s3 {
least_conn;
server minio1.example.com:9000;
server minio2.example.com:9000;
server minio3.example.com:9000;
server minio4.example.com:9000;
}
upstream minio_console {
least_conn;
server minio1.example.com:9001;
server minio2.example.com:9001;
server minio3.example.com:9001;
server minio4.example.com:9001;
}
server {
listen 80;
listen [::]:80;
server_name minio.example.com;
# Allow special characters in headers
ignore_invalid_headers off;
# Allow any size file to be uploaded.
# Set to a value such as 1000m; to restrict file size to a specific value
client_max_body_size 0;
# Disable buffering
proxy_buffering off;
proxy_request_buffering off;
location / {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_connect_timeout 300;
# Default is HTTP/1, keepalive is only enabled in HTTP/1.1
proxy_http_version 1.1;
proxy_set_header Connection "";
chunked_transfer_encoding off;
proxy_pass https://minio_s3; # This uses the upstream directive definition to load balance
}
location /minio/ui/ {
rewrite ^/minio/ui/(.*) /$1 break;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-NginX-Proxy true;
# This is necessary to pass the correct IP to be hashed
real_ip_header X-Real-IP;
proxy_connect_timeout 300;
# To support websockets in MinIO versions released after January 2023
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
# Some environments may encounter CORS errors (Kubernetes + Nginx Ingress)
# Uncomment the following line to set the Origin request to an empty string
# proxy_set_header Origin '';
chunked_transfer_encoding off;
proxy_pass https://minio_console; # This uses the upstream directive definition to load balance
}
}
EOF
Käynnistä nginx-palvelu
systemctl restart nginx
Luo säilytettävä määritystiedosto ja muokkaa sitä todellisen ympäristön mukaaninterface
javirtual_ipaddress
Parametrit, kahdella solmulla on sama kokoonpano:
cat > /etc/keepalived/keepalived.conf <<EOF
! Configuration File for keepalived
global_defs {
router_id minio
vrrp_version 2
vrrp_garp_master_delay 1
script_user root
enable_script_security
}
vrrp_script chk_nginx {
script "/usr/bin/killall -0 nginx"
timeout 3
interval 3 # check every 1 second
fall 2 # require 2 failures for KO
rise 2 # require 2 successes for OK
}
vrrp_instance lb-minio {
state BACKUP
interface ens33
virtual_router_id 51
priority 100
advert_int 1
nopreempt
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.72.100
}
track_script {
chk_nginx
}
}
EOF
Käynnistä säilytyspalvelu
systemctl restart keepalived
Katso luotu VIP-osoite
root@lb1:~# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:50:56:9a:92:75 brd ff:ff:ff:ff:ff:ff
altname enp2s1
inet 192.168.72.55/24 brd 192.168.72.255 scope global ens33
valid_lft forever preferred_lft forever
inet 192.168.72.100/32 scope global ens33
valid_lft forever preferred_lft forever
inet6 fe80::250:56ff:fe9a:9275/64 scope link
valid_lft forever preferred_lft forever
Koneessa, jonka on käytettävä minioa, määritä isäntien resoluutio
echo "192.168.72.100 minio.example.com" >>/etc/hosts
Selainkäyttöinen minikonsoli
http://minio.example.com/minio/ui/
Näytä mittaustiedot:
Asenna minio asiakas mihin tahansa koneeseen
wget https://dl.min.io/client/mc/release/linux-amd64/mc
chmod +x mc
mv mc /usr/local/bin/
Määritä minio-asiakas
mc alias set myminio http://minio.example.com minioadmin Minio@123456
Tarkastele klusterin tilaa API-liittymän kautta
root@ubuntu:~# mc admin info myminio
● minio1.example.com:9000
Uptime: 25 minutes
Version: 2024-07-04T14:25:45Z
Network: 4/4 OK
Drives: 4/4 OK
Pool: 1
● minio2.example.com:9000
Uptime: 25 minutes
Version: 2024-07-04T14:25:45Z
Network: 4/4 OK
Drives: 4/4 OK
Pool: 1
● minio3.example.com:9000
Uptime: 25 minutes
Version: 2024-07-04T14:25:45Z
Network: 4/4 OK
Drives: 4/4 OK
Pool: 1
● minio4.example.com:9000
Uptime: 25 minutes
Version: 2024-07-04T14:25:45Z
Network: 4/4 OK
Drives: 4/4 OK
Pool: 1
Pools:
1st, Erasure sets: 1, Drives per erasure set: 16
16 drives online, 0 drives offline
root@ubuntu:~#