प्रौद्योगिकी साझेदारी

ubuntu इत्यत्र minio cluster परिनियोजयन्तु

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

लघुसमूहस्य परिचयः

आधिकारिक दस्तावेजीकरणम् : १.https://min.io/docs/minio/linux/operations/install-deploy-manage/deploy-minio-बहु-नोड-बहु-ड्राइव.html

एतत् समाधानं बहु-नोड् बहु-चालक (MNMD) अथवा "वितरित" विन्यासे नियोजितस्य MinIO इत्यस्य उपयोगं करोति । MNMD परिनियोजनानि उद्यम-श्रेणीप्रदर्शनं, उपलब्धतां, मापनीयतां च प्रदास्यन्ति तथा च सर्वेषां उत्पादनकार्यभारानाम् अनुशंसितं टोपोलॉजी अस्ति ।

MNMD परिनियोजनानि मेटानसङ्केतनविन्यासानां समर्थनं कुर्वन्ति ये परिनियोजने नोड्स् अथवा ड्राइव्स् इत्यस्य आर्धपर्यन्तं हानिम् सहितुं शक्नुवन्ति, यदा पठनसञ्चालनानां सेवां निरन्तरं कुर्वन्ति
अत्र चित्रविवरणं सम्मिलितं कुर्वन्तु

क्लस्टर परिनियोजनस्य आवश्यकताः

  • आधिकारिकतया अनुशंसितं न्यूनतमं विन्यासः ४ सर्वरः अस्ति, प्रत्येकं सर्वरे ४ डिस्काः सन्ति, येन minio अत्यन्तं उपलब्धः भवितुम् अर्हति ।
  • minio इत्यस्य दत्तांशसञ्चयनिर्देशिकारूपेण पृथक् विभाजनस्य उपयोगः अनुशंसितः अस्ति तथापि भवन्तः प्रतिनोड् केवलं एकं स्वतन्त्रं डिस्कं कृत्वा चत्वारि नियमितनिर्देशिकाः निर्मातुं शक्नुवन्ति ।
  • MinIO वितरितनियोजनानां कृते असंगतहोस्ट्नाम अथवा IP-सङ्केतानां समर्थनं न करोति । विस्तारितं संकेतनं समर्थयति इति सरलं DNS योजनां स्थापयितुं प्रत्येकस्मिन् नोड् मध्ये /etc/hosts इत्यस्य उपयोगं कर्तुं शक्नुवन्ति ।
  • बहु-नोड्-प्रणाल्याः स्थिर-अन्तर-नोड्-सञ्चालनं, अन्तरक्रियां च निर्वाहयितुम् समयं तिथिं च समन्वयितं स्थापयितव्यम् ।

ubuntu इत्यत्र minio cluster परिनियोजयन्तु

नोड् योजना तथा डिस्क योजना निम्नलिखितरूपेण भवति प्रत्येकं नोड् चत्वारि डिस्कं सज्जीकरोति ।

नोड नामनोड IPलघु डिस्कमाउण्ट बिन्दुप्रचालन प्रणाली
minio1.उदाहरण.com192.168.72.51/ देव / एसडीबी / देव / एसडीसी / देव / एसडीडी / देव / एसडीई/ वर / लिब / मिनिओ / डेटा1 / वर / लिब / मिनिओ / डेटा 2 / वर / लिब / मिनिओ / डेटा3 / वर / लिब / मिनिओ / डेटा4उबंतु२२.०४
minio2.उदाहरण.com192.168.72.52/ देव / एसडीबी / देव / एसडीसी / देव / एसडीडी / देव / एसडीई/ वर / लिब / मिनिओ / डेटा1 / वर / लिब / मिनिओ / डेटा 2 / वर / लिब / मिनिओ / डेटा3 / वर / लिब / मिनिओ / डेटा4उबंतु२२.०४
minio3.उदाहरण.com192.168.72.53/ देव / एसडीबी / देव / एसडीसी / देव / एसडीडी / देव / एसडीई/ वर / लिब / मिनिओ / डेटा1 / वर / लिब / मिनिओ / डेटा 2 / वर / लिब / मिनिओ / डेटा3 / वर / लिब / मिनिओ / डेटा4उबंतु२२.०४
minio4.उदाहरण.com192.168.72.54/ देव / एसडीबी / देव / एसडीसी / देव / एसडीडी / देव / एसडीई/ वर / लिब / मिनिओ / डेटा1 / वर / लिब / मिनिओ / डेटा 2 / वर / लिब / मिनिओ / डेटा3 / वर / लिब / मिनिओ / डेटा4उबंतु२२.०४
lb1.उदाहरण.com192.168.72.55--उबंतु२२.०४
lb2.उदाहरण.com192.168.72.56--उबंतु२२.०४
वि.आइ.पी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
  • 1
  • 2
  • 3
  • 4

सर्वे लघुनोड्स् पृथक् पृथक् होस्ट्स् रिजोल्यूशन इत्यनेन विन्यस्ताः भवन्ति ।

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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

सर्वे लघुनोड् विन्याससमयाः समन्वयिताः भवन्ति ।
लघु बहु-नोड् प्रणाली स्थिरं अन्तर-नोड् संचालनं अन्तरक्रियां च निर्वाहयितुम् समयं तिथिं च समन्वयितं स्थापयितव्यम् ।

apt install -y chrony
systemctl enable --now chrony
timedatectl set-timezone Asia/Shanghai
  • 1
  • 2
  • 3

डिस्कं सज्जीकरोतु

प्रत्येकं नोड् ४ डिस्कं माउण्ट् करोति, येषु sda सिस्टम् डिस्कः अस्ति:

root@minio1:~# lsblk -d -n -o NAME | grep '^sd'
sda
sdb
sdc
sdd
sde
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

प्रत्येकं नोड् मध्ये चत्वारि ड्राइव्स् माउण्ट् कर्तुं चत्वारि निर्देशिकाः रचयन्तु ।

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
  • 1
  • 2
  • 3
  • 4

प्रत्येकं नोड् पृथक् पृथक्, डिस्कं 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
  • 1
  • 2
  • 3
  • 4

स्वचालितं माउण्टिङ्ग् विन्यस्यताम्

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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

mount all in /etc/fstab सञ्चिकातन्त्रं सञ्चिकायां परिभाषितं किन्तु अद्यापि माउण्ट् न कृतम्

sudo mount -av
  • 1

सञ्चिकातन्त्रं सम्यक् माउण्ट् कृतम् इति पुष्टिं कुर्वन्तु

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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

minio संस्थापयन्तु

प्रत्येकस्मिन् नोड् मध्ये पृथक् पृथक् deb संकुलस्य उपयोगेन MinIO संस्थापयन्तु

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
  • 1
  • 2

उपयुञ्जताम्‌ groupadd तथाuseradd उपयोक्तृणां समूहानां च निर्माणार्थं आदेशाः

groupadd -r minio-user
useradd -M -r -g minio-user minio-user
chown -R minio-user:minio-user /var/lib/minio
  • 1
  • 2
  • 3

सेवावातावरणसञ्चिकां रचयन्तु

अस्ति /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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

MinIO सेवां आरभ्य परिनियोजने प्रत्येकस्मिन् नोड् इत्यत्र निम्नलिखितम् आदेशं निर्गच्छतु ।

sudo systemctl restart minio.service
  • 1

सेवा ऑनलाइन अस्ति इति निम्नलिखित आदेशस्य उपयोगेन सम्यक् चालयति इति पुष्टिं कुर्वन्तु:

sudo systemctl status minio.service
journalctl -f -u minio.service
  • 1
  • 2

MiniIO कन्सोल् उद्घाटयन्तु

ब्राउजर् उद्घाट्य पोर्ट् अभिगन्तु :9001 MinIO कन्सोल् प्रवेशपृष्ठं उद्घाटयितुं कोऽपि MinIO होस्ट्नाम ।उदाहरणतया

http://minio1.example.com:9001
  • 1

प्रयोगं कुर्वन्तु 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
  • 1
  • 2

क्रमशः 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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

nginx तथा keepalived 2 नोड्स इत्यत्र संस्थापयन्तु:

apt install -y nginx keepalived
  • 1

nginx विन्याससञ्चिकां रचयन्तु, सर्वर-सङ्केतं परिवर्तयन्तु तथा च listen पोर्ट् अनुकूलितं कुर्वन्तु, परिवर्तनेषु ध्यानं ददतु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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73

nginx सेवा आरभत

systemctl restart nginx
  • 1

keepalived configuration file रचयित्वा वास्तविकवातावरणानुसारं परिवर्तयन्तु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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38

keepalvied सेवा आरभत

systemctl restart keepalived
  • 1

उत्पन्नं 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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

परीक्षण संयोजन

यस्मिन् यन्त्रे minio अभिगन्तुं आवश्यकं तस्मिन् hosts resolution विन्यस्यताम्

echo "192.168.72.100 minio.example.com" >>/etc/hosts
  • 1

ब्राउज़र अभिगम लघु कन्सोल

http://minio.example.com/minio/ui/
  • 1

मेट्रिक्स सूचनां पश्यन्तु:
अत्र चित्रविवरणं सम्मिलितं कुर्वन्तु

कस्मिन् अपि यन्त्रे minio client संस्थापयन्तु

wget https://dl.min.io/client/mc/release/linux-amd64/mc
chmod +x mc
mv mc /usr/local/bin/
  • 1
  • 2
  • 3

लघु क्लायन्ट् विन्यस्तं कुर्वन्तु

mc alias set myminio http://minio.example.com minioadmin Minio@123456
  • 1

एपिआइ-अन्तरफलकस्य माध्यमेन क्लस्टर-स्थितिं पश्यन्तु

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:~#  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34

refer to : १.https://elma365.com/en/help/minio-cluster.html इति ग्रन्थः