paint-brush
MinIO'ya Girmenize Yardımcı Olacak Veri Taşıma Araçlarıile@minio
7,028 okumalar
7,028 okumalar

MinIO'ya Girmenize Yardımcı Olacak Veri Taşıma Araçları

ile MinIO8m2023/11/01
Read on Terminal Reader
Read this story w/o Javascript

Çok uzun; Okumak

S3, yerel FileSystem, NFS, Azure, GCP, Hitachi Content Platform, Ceph ve diğerlerinden MinIO kümelerine veri almak için mevcut araçlardan bazılarını inceleyelim.
featured image - MinIO'ya Girmenize Yardımcı Olacak Veri Taşıma Araçları
MinIO HackerNoon profile picture
0-item
1-item


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:


  • S3 Uyumlu API
  • Çoklu Bulut Buluttan Bağımsız Dağıtımlar
  • S3 tarzı IAM tarzı ACL yönetimi
  • Silme Kodlaması kullanılarak Dağıtılmış ve Hataya dayanıklı depolama
  • Birden çok kümedeki nesnelerin katmanlanması ve sürümlendirilmesi
  • Paket ve Siteden Siteye Çoğaltma
  • Toplu Çerçeve aracılığıyla Toplu Çoğaltma
  • Sunucu tarafı nesnesi ve istemci veri şifrelemesi
  • Verilerin Aktarım Katmanı Ağı Şifrelemesi


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.

MinIO İstemcisi

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.

Dosya Sistemleri

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.

NFS

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.

S3

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.

HDFS

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ş .

HCP

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

Cep

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:


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 Bugün MinIO'ya Taşıyın!

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ı.