Cluster de fichiers minio à déploiement distribué Centos7

table des matières

1. Présentation du Minio distribué

1.Quels sont les avantages du Minio distribué?

2. Synchronisez l'heure du cluster

2. Construction de grappes distribuées Minio

1. Obtenez Minio

2. Modifiez le nom d'hôte et les hôtes

3. Modifiez le nombre maximum de fichiers dans le système

4. Création de catalogue

5. Fichier de démarrage du cluster

6 、 minio.service

7. Télécharger des fichiers binaires

8. Modification de l'autorisation

9, démarrez le cluster

10. Cluster d'agents

11. Test


1. Présentation du Minio distribué

Distributed Minio vous permet de combiner plusieurs disques durs (même sur des machines différentes) en un service de stockage d'objets. Les disques durs étant répartis sur différents nœuds, Minio distribué évite un point de défaillance unique.

1.Quels sont les avantages du Minio distribué?

Dans le domaine du Big Data, les concepts de conception habituels sont sans centre et distribués. Le mode distribué Minio peut vous aider à créer un service de stockage d'objets hautement disponible. Vous pouvez utiliser ces périphériques de stockage quel que soit leur emplacement physique réel.

Protection des données

Distributed Minio utilise un code d'effacement (code d'effacement) pour éviter les temps d'arrêt de plusieurs nœuds et la pourriture des bits.

Distributed Minio nécessite au moins 4 nœuds. L'utilisation de Minio distribué introduit automatiquement le codage d'effacement.

La haute disponibilité

Il existe un point de défaillance unique pour un service Minio autonome. Au contraire, s'il s'agit d'un Minio distribué à N nœuds, tant qu'il y a N / 2 nœuds en ligne, vos données sont en sécurité. Mais vous avez besoin d'au moins N / 2 + 1 nœuds de quorum pour créer de nouveaux objets.

Par exemple, un cluster Minio à 8 nœuds, chaque nœud a un disque, même si 4 nœuds sont en panne, le cluster est toujours lisible, mais vous avez besoin de 5 nœuds pour écrire des données.

limite

Les locataires uniques Minio distribués ont un minimum de 4 disques et un maximum de 16 disques (limités par les codes d'effacement). Cette restriction garantit la simplicité de Minio tout en conservant l'évolutivité. Si vous avez besoin de créer un environnement multi-tenant, vous pouvez facilement utiliser l'outil d'orchestration (Kubernetes) pour gérer plusieurs instances Minio.

Notez que vous pouvez combiner différents nœuds et plusieurs disques par nœud tant que vous respectez les restrictions de Minio distribué. Par exemple, vous pouvez utiliser 2 nœuds avec 4 disques par nœud, ou vous pouvez utiliser 4 nœuds avec deux disques par nœud, et ainsi de suite.

cohérence

En mode distribué et autonome Minio, toutes les opérations de lecture et d'écriture suivent strictement le modèle de cohérence lecture après écriture.

2. Synchronisez l'heure du cluster

L'heure de toutes les machines du cluster ne peut pas dépasser 3 secondes. Tout d'abord, vous devez installer le serveur de temps ntp, ce qui est très simple

https://blog.csdn.net/ct_666/article/details/112598442

2. Construction de grappes distribuées Minio

Vérifiez l'espace disque et sélectionnez le répertoire d'installation approprié

df -h

Au moins 4 nœuds dans l'environnement de production

nœud              IP Répertoire de données
minio1     192.168.44.10    / home / minio / data
minio2     192.168.44.11    / home / minio / data
minio3     192.168.44.12    / home / minio / data
minio4     192.168.44.13    / home / minio / data

1. Obtenez Minio

https://dl.min.io/server/minio/release/linux-amd64/minio

2. Modifiez le nom d'hôte et les hôtes

# 在对应的主机执行对应的语句
hostnamectl set-hostname minio1
hostnamectl set-hostname minio2
hostnamectl set-hostname minio3
hostnamectl set-hostname minio4
# 在所有主机执行
cat >> /etc/hosts <<EOF
192.168.44.10 minio1
192.168.44.11 minio2
192.168.44.12 minio3
192.168.44.13 minio4
EOF

3. Modifiez le nombre maximum de fichiers dans le système

# 所有主机执行
echo "*   soft    nofile  65535" >> /etc/security/limits.conf
echo "*   hard    nofile  65535" >> /etc/security/limits.conf

4. Création de catalogue

Script de démarrage et répertoire de fichiers binaires exécuter répertoire de
stockage de données répertoire de fichiers de
configuration de données / etc / minio

# 所有主机执行
mkdir -p /home/minio/{run,data} && mkdir -p /etc/minio

5. Fichier de démarrage du cluster

vim /home/minio/run/run.sh

MINIO_ACCESS_KEY: Nom d'utilisateur, la longueur minimale est de 5 caractères
MINIO_SECRET_KEY: Mot de passe, le mot de passe ne peut pas être défini trop simple, sinon minio ne démarrera pas, la longueur minimale est de 8 caractères
–config-dir: Spécifiez le répertoire du fichier de configuration du cluster

# 所有主机添加
#!/bin/bash
export MINIO_ACCESS_KEY=minio
export MINIO_SECRET_KEY=admin#2020

/home/minio/run/minio server --config-dir /etc/minio \
http://192.168.44.10/home/minio/data \
http://192.168.44.11/home/minio/data \
http://192.168.44.12/home/minio/data \
http://192.168.44.13/home/minio/data \

6 、 minio.service

WorkingDirectory: répertoire de fichiers binaires
ExecStart: spécifiez le script de démarrage du cluster

# 所有主机执行
cat > /usr/lib/systemd/system/minio.service <<EOF
[Unit]
Description=Minio service
Documentation=https://docs.minio.io/

[Service]
WorkingDirectory=/home/minio/run/
ExecStart=/home/minio/run/run.sh

Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target
EOF

7. Télécharger des fichiers binaires

Téléchargez le fichier binaire minio téléchargé dans le répertoire / home / minio / run

8. Modification de l'autorisation

Ajouter des autorisations à tous les fichiers ou répertoires concernés

fichier de service script de démarrage du cluster de fichiers
binaires

# 所有主机执行
chmod +x /usr/lib/systemd/system/minio.service && chmod +x /home/minio/run/minio && chmod +x /home/minio/run/run.sh

9, démarrez le cluster

# 所有主机执行
systemctl daemon-reload
systemctl start minio && systemctl enable minio
systemctl disable firewalld && systemctl stop firewalld 

# 当4台服务器都部署完毕后,查看状态如下:
[root@minio1 conf]# systemctl status minio
● minio.service - Minio service
   Loaded: loaded (/usr/lib/systemd/system/minio.service; enabled; vendor preset: disabled)
   Active: active (running) since 三 2021-01-13 16:07:08 CST; 9h ago
     Docs: https://docs.minio.io/
 Main PID: 6196 (run.sh)
   CGroup: /system.slice/minio.service
           ├─6196 /bin/bash /home/minio/run/run.sh
           └─6221 /home/minio/run/minio server --config-dir /etc/minio http://192.168.44.10/home/minio/data http://192.168.44.11/home/minio/data http://192.168.44.12/home/minio/data http://192.168.44.13/hom...

1月 13 18:19:02 minio1 run.sh[6196]: Endpoint:  http://192.168.44.10:9000  http://127.0.0.1:9000
1月 13 18:19:02 minio1 run.sh[6196]: Browser Access:
1月 13 18:19:02 minio1 run.sh[6196]: http://192.168.44.10:9000  http://127.0.0.1:9000
1月 13 18:19:02 minio1 run.sh[6196]: Object API (Amazon S3 compatible):
1月 13 18:19:02 minio1 run.sh[6196]: Go:         https://docs.min.io/docs/golang-client-quickstart-guide
1月 13 18:19:02 minio1 run.sh[6196]: Java:       https://docs.min.io/docs/java-client-quickstart-guide
1月 13 18:19:02 minio1 run.sh[6196]: Python:     https://docs.min.io/docs/python-client-quickstart-guide
1月 13 18:19:02 minio1 run.sh[6196]: JavaScript: https://docs.min.io/docs/javascript-client-quickstart-guide
1月 13 18:19:02 minio1 run.sh[6196]: .NET:       https://docs.min.io/docs/dotnet-client-quickstart-guide
1月 13 18:19:02 minio1 run.sh[6196]: Waiting for all MinIO IAM sub-system to be initialized.. lock acquired

10. Cluster d'agents

L'environnement de production doit utiliser Nginx pour proxy l'adresse du cluster et une entrée unifiée vers le monde extérieur. Étant donné que nginx est déployé sur 192.168.44.10, le port 9000 ne peut plus être utilisé. Le port utilisé 9001 utilise par défaut un mécanisme d'interrogation d'équilibrage de charge pour transférer 4 adresses uniformément.

# 配置nginx将集群代理端口映射到9001
upstream minio{
        server 192.168.44.10:9000;
        server 192.168.44.11:9000;
        server 192.168.44.12:9000;
        server 192.168.44.13:9000;
}
server {
        listen 9001;
        server_name minio;
        location / {
                proxy_pass http://minio;
                proxy_set_header Host $http_host;
                client_max_body_size 1000m;
        }
}

11. Test

Le navigateur accède à l'adresse proxy du cluster minio + port 9001, le nom d'utilisateur et le mot de passe sont ceux que nous avons définis dans le fichier de démarrage run.sh ci-dessus

<ADRESSE_IP>: 9001

Cette méthode de déploiement peut avoir une tolérance de panne pour une machine.

Lorsque le temps d'arrêt = 1, lisible et inscriptible, lorsque le temps d'arrêt = 2, lisible et non inscriptible, lorsque le temps d'arrêt> 2, le cluster n'est pas disponible

Je suppose que tu aimes

Origine blog.csdn.net/ct_666/article/details/112579896
conseillé
Classement