Sales3 min read622 words

Ubuntu 20.04 MinIO Cluster Kurulumu

Fatih Çevik

Fatih Çevik

PlusClouds Author

Cloud & SaaS

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 :)

Frequently Asked Questions

MinIO nedir ve S3 ile ilişkisi nedir?

MinIO, GNU Affero General Public License V3.0 altında yayımlanan yüksek performanslı bir object storage servisidir. Aslında Amazon S3 ile aynı işlevlere sahip olarak kullanılır ve kendi S3 benzeri sunucunuzu oluşturmanıza olanak tanır. Açık kaynaklı bir çözümdür.

Object storage nedir ve nasıl çalışır?

Object storage verinin her parçasını ayrı objeler olarak depolar ve bu objelere metadata atar. Veriler, file storage ve block storage'tan farklı olarak parça parça ve metadata ile yönetilir.

MinIO cluster kurulumu için hangi ön gereksinimler vardır?

Bu yazıda Ubuntu 20.04 işletim sistemi kullanılıyor ve 4 adet Ubuntu 20.04 yüklü sunucu gerekir. Bütün nodlarda root yetkisi ve stabil internet bağlantısı da gereklidir.

MinIO için yeni disk nasıl hazırlanır ve mount edilir?

MinIO için işletim sisteminin kurulu olduğu diskin dışında yeni bir disk gerekir. İlk olarak pvcreate /dev/xvdb ile fiziksel alan oluşturun, ardından mkdir /data ile dizin yaratın ve mkfs.ext4 /dev/xvdb ile dosya sistemini kurun. Son olarak /etc/fstab dosyasına /dev/xvdb /data ext4 defaults,noatime,nofail 0 0 satırını ekleyip mount -a ile montajı yapın ve df -h ile doğrulayın.

MinIO servis kurulumu nasıl yapılır?

Önce işletim sistemini güncelleyin ve wget kurun: apt update && apt upgrade && apt install wget -y. Ardından MinIO ikili dosyasını indirip çalıştırılabilir yapın ve servis dosyasını oluşturun. Son olarak systemctl daemon-reload, systemctl enable minio ve systemctl start minio.service komutları ile servisi etkinleştirin ve başlatın.

MINIO_OPTS ile MINIO_ACCESS_KEY ve MINIO_SECRET_KEY nasıl yapılandırılır?

MINIO_OPTS değeri ile hangi uçlardan erişileceği ve veri dizinlerinin yolunu belirtecek şekilde çoklu endpointler tanımlanır; örnekte http://hostname1:9000/data ve diğer hostname'ler listelenir. MINIO_ACCESS_KEY için en az 16 haneli güvenli bir anahtar ve MINIO_SECRET_KEY için en az 16 haneli console giriş şifresi kullanılır.

MinIO cluster'ı başlatıp çalıştığını nasıl doğrularım?

Bu adımları tüm nodlarda tamamladıktan sonra MinIO servisini başlatıp çalıştığını kontrol edin. Servisin durumunu doğrulamak için systemctl status minio.service komutunu kullanın.

Ubuntu 20.04 MinIO Cluster Kurulumu | PlusClouds Blog