Ubuntu 20.04 MinIO Cluster Kurulumu ve Konfigürasyonu

  • Fatih Çevik
  • 17 Mar 2022

MinIO Nedir ?

MinIO GNU Affero General Public License V3.0 altında yayınlanan yüksek performanslı bir object storage servisidir. Aslında bu yazıyı okuyorsanız çoğunuz Amazon S3 storage servisini bir yerden ya duymuşsunuzdur ya da kullanmışsınızdır. MinIO servisi de aslında neredeyse S3 ile aynı işlevlere sahip diyebiliriz. MinIO servisini kullanarak daha düşük maliyetlerle kendi S3 sunucunuzu oluşturabilirsiniz.

Object Storage Nedir ?

Object storage verinin her parçasını alır ve bir obje olarak yeniden dizayn eder. Veriler file storage ve block storage 'ların aksine parça parça bölümlerde eşsiz metadata 'lar atanarak storage havuzunda tutulur.

Ön Hazırlık ve Gereksinimler

Yazımızda Ubuntu 20.04 işletim sistemini kullanacağız

  • 4 adet Ubuntu 20.04 yüklü sunucu

  • Bütün nodelarda root yetkisi

  • Kurulum yapılacak nodelarda stabil internet bağlantısı

Gereksinimleri Karşıladıktan Sonra Kuruluma Geçebiliriz.

Bundan sonraki adımlar bütün nodelarda eksiksiz olarak yapılmalıdır.

1. İşletim Sisteminin Yüklü Olduğu Disk Dışında Yeni Bir Disk Mount Edin

MinIO cluster kurulumu için olmazsa olmaz ihtiyacımız, işletim sisteminizin kurulu olduğu disk dışında MinIO servisi için yeni bir disk mount edilmesi gerekiyor.

Aşağıdaki komut ile makineye bağlı diskleri listeliyoruz.

fdisk -l

 Disk /dev/xvda:   80   GiB,   85899345920   bytes,   167772160   sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 2666C97D-884F-4535-8F56-5DCE785E1D25

Device Start End Sectors Size Type
/dev/xvda1 2048 4095 2048 1M BIOS boot
/dev/xvda2 4096 2101247 2097152 1G Linux filesystem
/dev/xvda3 2101248 167772126 165670879 79G Linux filesystem




Disk /dev/xvdb: 20 GiB, 21474836480 bytes, 41943040 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Yukarıdakine benzer bir çıktıyla karşılaşacaksınız. Burada /dev/xvda diski işletim sistemimizin kurulu olduğu disk. Yeni eklediğimiz disk ise /dev/xvdb adıyla görünüyor.

Yeni taktığımız diskin mount işlemini gerçekleştirmeden önce yapmamız gereken bir kaç şey daha var.

Aşağıdaki komut ile ilk olarak fiziksel alan oluşturun.

pvcreate /dev/xvdb

Hemen ardından diskimizi mount edeceğimiz dizini oluşturuyoruz.

mkdir /data

Ardından aşağıdaki komut ile yeni diskimizin dosya sistemini oluşturuyoruz.

mkfs.ext4 /dev/xvdb

Dosya sistemini de oluşturmamızın ardından mount işlemini gerçekleştirmek için son kalan adımı gerçekleştiriyoruz. /etc/fstab dosyasında mount edeceğimiz diskin ve mount dizininin konfigürasyonlarını düzenliyoruz.

nano /etc/fstab

Dosyaya ulaştıktan sonra aşağıdaki satırı ekliyoruz.

/dev/xvdb /data ext4 defaults,noatime,nofail 0 0

Diskimiz artık mount işlemi için hazır. Aşağıdaki komut ile mount işlemini gerçekleştiriyoruz.

mount -a

Aşağıdaki komut ile mount işlemini doğrulayabilirsiniz.

df -h

Aynı işlemi bütün nodelar üzerinde yapmamız gerektiğini unutmayın.

2. MinIO Servis Kurulumunu Gerçekleştirin

Servis kurulumu öncesinde işletim sisteminizi hazırlayın. Aşağıdaki komut ile işlemleri gerçekleştirebilirsiniz.

apt update && apt upgrade && apt install wget -y

Ardından MinIO servsini indiriyoruz ve gerekli izinleri veriyoruz

wget -O /usr/local/bin/minio https://dl.minio.io/server/minio/release/linux-amd64/minio

chmod +x /usr/local/bin/minio

System servislerimizin bulunduğu dizinde MinIO için servis dosyası oluşturup düzenliyoruz.

nano /lib/systemd/system/minio.service

Aşağıdaki satırları kopyalayıp yapıştırın ve kaydedin.

 [Unit]

Description =minio

Documentation =https://docs.min.io

Wants =network-online.target

After =network-online.target

AssertFileIsExecutable =/usr/local/bin/minio

[Service]

WorkingDirectory =/usr/local/

User =root

Group =root

EnvironmentFile =/etc/default/minio

ExecStart =/usr/local/bin/minio server $MINIO_OPTS \
--console-address ":9001"

Restart =always

LimitNOFILE =65536

TimeoutStopSec =infinity

SendSIGKILL = no

[Install]

WantedBy =multi-user.target

Ardından MinIO config dosyamızı oluşturup düzenliyoruz.

nano /etc/default/minio

Aşağıdaki satırları kopyalayıp yapıştırın. Kendi bilgilerinizle gereken yerleri değiştirmeyi unutmayın.

 MINIO_OPTS=  "http://hostname1:9000/data     http://hostname2:9000/data         http://hostname3:9000/data         http://hostname4:9000/data     "  

MINIO_ACCESS_KEY= "En az 16 haneli user bilginiz yerine geçecek güvenli bir key"

MINIO_SECRET_KEY= "En az 16 haneli console giriş şifresi"

Yukarıda yapılan her işlemin aynısını bütün nodelarda yaptıysanız artık geriye kalan tek şey MinIO servisini tek tek her node üzerinde çalıştırmanız.

systemctl daemon-reload systemctl enable minio systemctl start minio.service

ve son olarak aşağıdaki komut ile clusterınızın aktif çalıştığını doğrulayabilirsiniz.

systemctl status minio.service

Artık MinIO clusterınız kullanıma hazır. Başka bir yazıda görüşmek üzere :)

Size yardımcı olmamı
ister misiniz ?