MinIO her şey üzerinde çalışır: çıplak donanım, Kubernetes, Docker, Linux ve daha fazlası. Kuruluşlar, verilerini bu platformlardan herhangi birinde barındırmak için MinIO'yu çalıştırmayı tercih ediyor ve birden fazla gereksinimi karşılamak için giderek daha fazla birden fazla platforma güveniyor. Temel donanım ve işletim sistemi seçimi, öncelikle MinIO'da depolanacak veri miktarı artı diğer bulutta yerel yazılımlarla entegrasyon, performans ve güvenlik gereksinimleri gibi bir dizi faktöre dayanır.
Müşterilerimizin çoğu MinIO'yu çıplak donanım üzerinde çalıştırırken çoğunluğu Kubernetes üzerinde çalışıyor. MinIO'nun birden çok örneğini Kubernetes tarafından yönetilen konteynerleştirilmiş bir mimaride çalıştırmak son derece verimlidir. MinIO müşterileri, her bölgede ayrı Kubernetes kümelerinin çalıştırılması ve en yüksek esneklik ve ölçeklenebilirlik için hiçbir şeyin paylaşılmaması operasyonel hedefi ile yeni bölgeleri ve güncelleme hizmetlerini kesintisiz olarak kullanıma sunuyor.
Müşteriler aşağıdakiler de dahil olmak üzere çeşitli nedenlerle MinIO'ya geçiş yapar:
MinIO'nun kullanılabileceği ve kurulabileceği bu çeşitli nedenler ve ortamlar nedeniyle, MinIO'ya girmek isteyeceğiniz verilerin zaten depolandığı bir dizi veri kaynağının bulunduğunu varsaymak gerçekçi olur.
Bu yazıda, verileri S3, yerel FileSystem, NFS, Azure, GCP, Hitachi İçerik Platformu, Ceph ve diğerlerinden ve bulutta yerel yapay zekaya maruz bırakılabileceği MinIO kümelerine almak için mevcut araçlardan bazılarını inceleyelim. /ML ve analiz paketleri.
Başlamak için, bu yazı boyunca bu seçeneklerden birkaçı için MinIO İstemcisini (mc) kullanacağız. Lütfen onu yüklediğinizden ve takma adı çalışan MinIO Sunucunuza ayarladığınızdan emin olun.
mc alias set destminio https://myminio.example.net minioadminuser minioadminpassword
Farklı yöntemleri inceledikçe daha fazla "kaynak" takma adı ekleyeceğiz.
Verilerin MinIO'ya taşınmasına yönelik kullanım durumlarının çoğu, monte edilmiş bir dosya sistemi veya NFS birimiyle başlar. Bu basit yapılandırmada, verileri kaynaktan hedefe senkronize etmek için mc aynasını kullanabilirsiniz. mc mirror
veri senkronizasyonu için bir İsviçre çakısı olarak düşünün. Nesneleri aldığınız kaynakla etkileşim kurmanın en iyi yolunu belirlemek kullanıcının yükünü alır. Bir dizi kaynağı destekler ve çektiğiniz kaynağa bağlı olarak bunları etkinleştirmek için doğru işlevler kullanılır.
Örneğin, fiziksel bir sabit diskten, sanal diskten veya hatta GlusterFS montajı gibi bir şeyden monte edilen basit bir FileSystem ile başlayalım. İşletim sistemi tarafından okunabilen bir dosya sistemi olduğu sürece MinIO da bunu okuyabilir:
filesystem kbytes used avail capacity mounted on /dev/root 6474195 2649052 3825143 41% / /dev/stand 24097 5757 18340 24% /stand /proc 0 0 0 0% /proc /dev/fd 0 0 0 0% /dev/fd /dev/_tcp 0 0 0 0% /dev/_tcp /dev/dsk/c0b0t0d0s4 10241437 4888422 5353015 48% /home /dev/dsk/c0b0t1d0sc 17422492 12267268 5155224 71% /home2
Nesnelerinizin /home/mydata
içinde olduğunu varsayalım, ardından nesneleri yansıtmak için aşağıdaki komutu çalıştırırsınız (eğer mydata
grubu zaten mevcut değilse, önce onu oluşturmanız gerekir):
mc mirror /home/mydata destminio/mydata
Bu komut, artık kaynak konumda olmayan nesnelerin hedeften kaldırılmasını veya kaynağa yeni nesneler eklendiğinde hedefe kopyalanmalarını sağlayacaktır. Ancak kaynakta değiştirilen mevcut nesnelerin üzerine yazmak istiyorsanız --overwrite
bayrağını iletin.
Ağ Dosya Paylaşımı (NFS) genellikle sık erişilmeyen nesneleri veya verileri depolamak için kullanılır, çünkü her yerde bulunsa da genellikle protokol ağ genelinde çok yavaştır. Bununla birlikte, birçok ETL ve bazı eski sistemler, NFS'yi operasyonlar, analizler, AI/ML ve ek kullanım senaryoları için kullanılacak veriler için bir depo olarak kullanır. Bir MinIO kümesinin ölçeklenebilirliği, güvenliği ve yüksek performansının yanı sıra MinIO'nun S3 API'yi kullanarak bulutta yerel uygulamalara hizmet sağlama yeteneği nedeniyle bu verilerin MinIO'da yaşaması daha mantıklı olacaktır.
NFS birimini bağlamak için gerekli paketleri yükleyin
apt install nfs-common
/home
dizinini /etc/exports
dizinine eklediğinizden emin olun.
/home client_ip(rw,sync,no_root_squash,no_subtree_check)
Not: NFS sunucunuzu, örneğin Ubuntu sunucularında yeniden başlattığınızdan emin olun.
systemctl restart nfs-kernel-server
NFS bağlantısını bağlamak için bir dizin oluşturun
mkdir -p /nfs/home
NFS birimini bağlayın
mount <nfs_host>:/home /nfs/home
Verileri NFS'den MinIO'ya kopyalayın
mc mirror /nfs/home destminio/nfsdata
İşte artık büyük nesnelerinizi NFS'den MinIO'ya taşıyabilirsiniz.
Daha önce de belirttiğimiz gibi mc mirror
, veri senkronizasyonunda bir İsviçre çakısı. Dosya sistemlerine ek olarak S3 veya S3 API uyumlu depolardaki nesneleri de kopyalayıp MinIO'ya yansıtır. Bunun en popüler kullanım örneklerinden biri Amazon S3 klasörünün yansıtılmasıdır.
Hesabınızda bir AWS S3 klasörü oluşturmak için bu adımları izleyin. Zaten veri içeren mevcut bir hesabınız varsa onu da kullanabiliriz.
Bir paket oluşturulduktan veya mevcut bir pakete veri eklendikten sonra, yalnızca bizim paketimize erişime izin veren erişim anahtarı ve gizli anahtar içeren yeni bir IAM politikası oluşturun. Oluşturulan kimlik bilgilerini bir sonraki adım için kaydedin.
MinIO Client'ı kullanarak S3 uyumlu herhangi bir depolama birimiyle çalışabiliriz. Daha sonra, indirdiğimiz kimlik bilgileriyle birlikte oluşturduğumuz S3 klasör adını kullanarak bir takma ad ekleyelim.
mc alias set s3 https://s3.amazonaws.com BKIKJAA5BMMU2RHO6IBB V7f1CwQqAcwo80UEIJEjc5gVQUSSx5ohQ9GSrr12 --api S3v4
Verileri S3'ten MinIO'ya kopyalamak için mc aynasını kullanın
mc mirror s3/mybucket destminio/mydata
Veri miktarına, ağ hızlarına ve paket verilerinin depolandığı bölgeye olan fiziksel mesafeye bağlı olarak tüm verileri yansıtmanız birkaç dakika veya daha uzun sürebilir. Mc'nin tüm nesneleri kopyalaması bittiğinde bir mesaj göreceksiniz.
Bir sonraki araç grubu için, yerine getirmemiz gereken standart dışı uç durum veri taşıma gereksinimlerinin bazılarını karşılamak amacıyla özel komut dosyaları yazıyoruz. Bunlardan biri HDFS ve Hadoop'tan geçiştir. Pek çok kuruluşun Hadoop'ta depoladığı o kadar çok veri var ki, bunları göz ardı etmek ve bulutta yerel bir platformla yeni bir başlangıç yapmak imkansızdır. Bu verileri MinIO gibi daha modern (ve bulutta yerel) bir şeye aktarmak ve ETL'nizi ve diğer süreçlerinizi bu şekilde çalıştırmak daha uygundur. Kurulumu oldukça basit.
Aşağıdaki içeriklere sahip core-site.xml
adlı bir dosya oluşturun
<configuration> <property> <name>fs.s3a.path.style.access</name> <value>true</value> </property> <property> <name>fs.s3a.endpoint</name> <value>https://minio:9000</value> </property> <property> <name>fs.s3a.access.key</name> <value>minio-sample</value> </property> <property> <name>fs.s3a.secret.key</name> <value>minio-sample123</value> </property> </configuration>
Aşağıdaki ortam değişkenlerini ayarlayın
export HDFS_SOURCE_PATH=hdfs://namenode:8080/user/minio/testdir export S3_DEST_PATH=s3a://mybucket/testdir
Aşağıdaki dosyayı indirin, chmod +x ve çalıştırın
curl -LSs -o https://github.com/minio/hdfs-to-minio/blob/master/hdfs-to-minio.sh chmod +x hdfs-to-minio.sh ./hdfs-to-minio.sh
Hadoop'ta birkaç yıldır veri depoluyorsanız bu işlem birkaç saat sürebilir. Bir üretim kümesindeyse, veriler yansıtılırken Hadoop kümenizde oluşabilecek performans düşüşünün etkisini en aza indirmek için bakım pencereleri sırasında verileri mesai saatleri dışında taşımanızı öneririz.
HDFS'den MinIO'ya geçiş hakkında daha fazla ayrıntıyı bu GitHub Repo'da bulabilirsiniz ve ayrıca bir blog gönderimiz de var: HDFS'den Nesne Depolamaya Geçiş .
Daha önce Hitachi İçerik Platformu ve verilerinizin bir MinIO kümesine nasıl taşınacağı hakkında harika bir blog yazısı yazmıştık. Tüm ayrıntılar için blog yazısını okumanızı tavsiye ederim, ancak işin özü aşağıdaki gibidir.
Gerekli HCP kümesini ve giriş dosyasını yapılandırdıktan sonra geçiş aracını indirin ve geçiş işlemini başlatmak için aşağıdaki komutu çalıştırın.
$ hcp-to-minio migrate --namespace-url https://finance.europe.hcp.example.com --auth-token "HCP bXl1c2Vy:3f3c6784e97531774380db177774ac8d" --host-header "s3testbucket.sandbox.hcp.example.com" --data-dir /mnt/data --bucket s3testbucket --input-file /tmp/data/to-migrate.txt
Son fakat bir o kadar da önemlisi, fili sonuna kadar odada tuttuk. Yaşlanmasına rağmen Ceph popüler bir veri deposudur ve S3 uyumlu bir API'ye sahiptir. Rook gibi diğer Kubernetes projeleri tarafından nesne depolama için arka uç olarak kullanılır. Ancak Ceph, kurulması ve çalıştırılması hantal bir devdir. Bu nedenle insanların verilerini daha basit, bakımı daha kolay ve daha yüksek performansa sahip bir şeye taşımak istemeleri doğaldır.
Ceph'ten veri kopyalamanın iki yolu vardır:
Kova Çoğaltma: Nesneyi oluşturur ancak nesne kaynaktan silinirse hedefte silinmez. https://min.io/docs/minio/linux/administration/bucket-replication.html
Mc aynası: Nesneleri ve sürümleri senkronize eder, hatta var olmayan nesneleri bile siler https://min.io/docs/minio/linux/reference/minio-mc/mc-mirror.html
S3'e benzer şekilde Ceph'in S3 uyumlu API'si olduğundan MinIO Client'a takma ad ekleyebilirsiniz.
mc alias set ceph http://ceph_host:port cephuser cephpass
Daha sonra verileri MinIO kümenize kopyalamak için mc mirror
kullanabilirsiniz.
mc mirror ceph/mydata destminio/mydata
Nesneleri sürekli olarak izlemek ve onları MinIO ile senkronize etmek için mc mirror
komutunu --watch
bayrağıyla çalıştırmanızı öneririz.
Verilerinizi MinIO'ya taşımanın ne kadar kolay olduğunu gösteren sadece birkaç örnek var. NFS gibi daha eski protokolleri veya S3 gibi en yeni ve en iyi protokolleri kullanıyor olmanızın bir önemi yok, MinIO sizi desteklemek için burada.
Bu yazıda dosya sistemlerinden ve NFS, dosya sistemi, GlusterFS, HDFS, HCP ve son olarak da Ceph gibi diğer veri depolarından nasıl geçiş yapılacağı konusunda ayrıntılı bilgi verdik. Kendisine karşı çalışan teknoloji yığınından bağımsız olarak, arka uç MinIO, performanslı, dayanıklı, güvenli ve ölçeklenebilir ancak basit, yazılım tanımlı bir nesne depolama çözümü sağlar.
Herhangi bir sorunuz varsa bizimle Slack üzerinden iletişime geçmekten çekinmeyin!
Burada da yayınlandı.