τα στοιχεία επικοινωνίας μου
Ταχυδρομείο[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Επίσημη τεκμηρίωση:https://min.io/docs/minio/linux/operations/install-deploy-manage/deploy-minio-multi-node-multi-drive.html
Αυτή η λύση χρησιμοποιεί MinIO που έχει αναπτυχθεί σε διαμόρφωση πολλαπλών προγραμμάτων οδήγησης πολλαπλών κόμβων (MNMD) ή "κατανεμημένη" διαμόρφωση. Οι αναπτύξεις MNMD παρέχουν απόδοση, διαθεσιμότητα και επεκτασιμότητα εταιρικού επιπέδου και είναι η συνιστώμενη τοπολογία για όλους τους φόρτους εργασίας παραγωγής.
Οι αναπτύξεις MNMD υποστηρίζουν διαμορφώσεις κωδικοποίησης διαγραφής που μπορούν να ανεχθούν την απώλεια έως και των μισών κόμβων ή μονάδων δίσκου στην ανάπτυξη ενώ συνεχίζουν να εξυπηρετούν λειτουργίες ανάγνωσης.
Απαιτήσεις ανάπτυξης συμπλέγματος
Ο σχεδιασμός του κόμβου και ο σχεδιασμός του δίσκου είναι οι εξής: Κάθε κόμβος προετοιμάζει τέσσερις δίσκους:
Όνομα κόμβου | Κόμβος IP | Minio δίσκος | σημείο προσάρτησης | λειτουργικό σύστημα |
---|---|---|---|---|
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 | Ubuntu22.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 | Ubuntu22.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 | Ubuntu22.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 | Ubuntu22.04 |
lb1.example.com | 192.168.72.55 | - | - | Ubuntu22.04 |
lb2.example.com | 192.168.72.56 | - | - | Ubuntu22.04 |
πολύ σπουδαίο πρόσωπο | 192.168.72.100 | - | - | - |
Περιγραφή: Η διεύθυνση VIP καταλήγει σεminio.example.com
Το όνομα τομέα χρησιμεύει ως ενοποιημένη είσοδος.
http://minio.example.com
http://minio.example.com/minio/ui
Η αρχιτεκτονική του συμπλέγματος έχει ως εξής:
Όλοι οι μίνι κόμβοι έχουν ρυθμιστεί με ονόματα κεντρικών υπολογιστών αντίστοιχα.
hostnamectl set-hostname minio1.example.com
hostnamectl set-hostname minio2.example.com
hostnamectl set-hostname minio3.example.com
hostnamectl set-hostname minio4.example.com
Όλοι οι μίνι κόμβοι έχουν διαμορφωθεί με ανάλυση κεντρικών υπολογιστών ξεχωριστά.
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
Όλοι οι χρόνοι διαμόρφωσης κόμβων μίνι συγχρονίζονται.
Τα συστήματα πολλαπλών κόμβων Minio πρέπει να διατηρούν την ώρα και την ημερομηνία συγχρονισμένα για να διατηρούν σταθερή λειτουργία και αλληλεπίδραση μεταξύ των κόμβων.
apt install -y chrony
systemctl enable --now chrony
timedatectl set-timezone Asia/Shanghai
Κάθε κόμβος τοποθετεί 4 δίσκους, εκ των οποίων το sda είναι ο δίσκος συστήματος:
root@minio1:~# lsblk -d -n -o NAME | grep '^sd'
sda
sdb
sdc
sdd
sde
Σε κάθε κόμβο, δημιουργήστε τέσσερις καταλόγους για να προσαρτήσετε τις τέσσερις μονάδες δίσκου:
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
Σε κάθε κόμβο, μορφοποιήστε το δίσκο στο σύστημα αρχείων XFS:
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
Διαμόρφωση αυτόματης τοποθέτησης
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
τοποθετήστε όλα μέσα /etc/fstab
Το σύστημα αρχείων έχει οριστεί στο αρχείο αλλά δεν έχει ακόμη προσαρτηθεί
sudo mount -av
Επιβεβαιώστε ότι το σύστημα αρχείων έχει τοποθετηθεί σωστά
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
Εγκαταστήστε το MinIO χρησιμοποιώντας το πακέτο deb σε κάθε κόμβο ξεχωριστά
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
χρήση groupadd
καιuseradd
Εντολές για τη δημιουργία χρηστών και ομάδων
groupadd -r minio-user
useradd -M -r -g minio-user minio-user
chown -R minio-user:minio-user /var/lib/minio
υπάρχει /etc/default/minio
Δημιουργία αρχείων περιβάλλοντος. Η υπηρεσία MinIO χρησιμοποιεί αυτό το αρχείο ως MinIO καιminio.service
Η πηγή όλων των μεταβλητών περιβάλλοντος που χρησιμοποιούνται από το αρχείο.
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
Εκδώστε την ακόλουθη εντολή σε κάθε κόμβο στην ανάπτυξη για να ξεκινήσετε την υπηρεσία MinIO Πολλοί κόμβοι πρέπει να εκτελούνται με τη σειρά ταυτόχρονα.
sudo systemctl restart minio.service
Επιβεβαιώστε ότι η υπηρεσία είναι συνδεδεμένη και εκτελείται σωστά χρησιμοποιώντας την ακόλουθη εντολή:
sudo systemctl status minio.service
journalctl -f -u minio.service
Ανοίξτε ένα πρόγραμμα περιήγησης και αποκτήστε πρόσβαση στη θύρα :9001
οποιοδήποτε όνομα κεντρικού υπολογιστή MinIO για να ανοίξετε τη σελίδα σύνδεσης της κονσόλας MinIO.Για παράδειγμα
http://minio1.example.com:9001
Χρησιμοποιήστε το minio_root_user
καιminio_root_password
Σύνδεση.
Μπορείτε να χρησιμοποιήσετε την κονσόλα MinIO για να εκτελέσετε εργασίες γενικής διαχείρισης, όπως διαχείριση ταυτότητας και πρόσβασης, παρακολούθηση μετρήσεων και αρχείων καταγραφής ή διαμόρφωση διακομιστή. Κάθε διακομιστής MinIO περιέχει τη δική του ενσωματωμένη κονσόλα MinIO.
Επίσημη τεκμηρίωση:https://min.io/docs/minio/linux/integrations/setup-nginx-proxy-with-minio.html
χρήσηnginx
καιkeepalived
Για να επιτύχετε εξισορρόπηση φορτίου, προετοιμάστε 2 διακομιστές ως κόμβους εξισορρόπησης φορτίου.
Διαμορφώστε το όνομα κεντρικού υπολογιστή στον κόμβο lb αντίστοιχα.
hostnamectl set-hostname lb1.example.com
hostnamectl set-hostname lb2.example.com
Διαμορφώστε την ανάλυση κεντρικών υπολογιστών στον κόμβο lb αντίστοιχα.
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
Εγκαταστήστε το nginx και το keepalived σε 2 κόμβους:
apt install -y nginx keepalived
Δημιουργήστε αρχείο διαμόρφωσης nginx, τροποποιήστε τη διεύθυνση διακομιστή και προσαρμόστε τη θύρα ακρόασης, δώστε προσοχή στις τροποποιήσειςserver_name
παράμετρος:
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
Ξεκινήστε την υπηρεσία nginx
systemctl restart nginx
Δημιουργήστε ένα αρχείο ρύθμισης παραμέτρων διατήρησης και τροποποιήστε το σύμφωνα με το πραγματικό περιβάλλονinterface
καιvirtual_ipaddress
Παράμετροι, οι δύο κόμβοι έχουν την ίδια διαμόρφωση:
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
Ξεκινήστε την υπηρεσία keepalvied
systemctl restart keepalived
Δείτε τη διεύθυνση VIP που δημιουργήθηκε
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
Στο μηχάνημα που χρειάζεται πρόσβαση στο minio, διαμορφώστε την ανάλυση κεντρικών υπολογιστών
echo "192.168.72.100 minio.example.com" >>/etc/hosts
Minio κονσόλα πρόσβασης προγράμματος περιήγησης
http://minio.example.com/minio/ui/
Προβολή πληροφοριών μετρήσεων:
Εγκαταστήστε το minio client σε οποιοδήποτε μηχάνημα
wget https://dl.min.io/client/mc/release/linux-amd64/mc
chmod +x mc
mv mc /usr/local/bin/
Διαμόρφωση προγράμματος-πελάτη μίνι
mc alias set myminio http://minio.example.com minioadmin Minio@123456
Προβολή κατάστασης συμπλέγματος μέσω της διεπαφής API
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:~#
αναφέρομαι σε:https://elma365.com/en/help/minio-cluster.html