paint-brush
Các công cụ di chuyển dữ liệu giúp bạn truy cập MinIOtừ tác giả@minio
7,025 lượt đọc
7,025 lượt đọc

Các công cụ di chuyển dữ liệu giúp bạn truy cập MinIO

từ tác giả MinIO8m2023/11/01
Read on Terminal Reader
Read this story w/o Javascript

dài quá đọc không nổi

Hãy xem xét một số công cụ có sẵn để lấy dữ liệu ra khỏi S3, FileSystem cục bộ, NFS, Azure, GCP, Hitachi Content Platform, Ceph, v.v. và vào các cụm MinIO.
featured image - Các công cụ di chuyển dữ liệu giúp bạn truy cập MinIO
MinIO HackerNoon profile picture
0-item
1-item


MinIO chạy trên mọi thứ – bare metal, Kubernetes, Docker, Linux, v.v. Các tổ chức chọn chạy MinIO để lưu trữ dữ liệu của họ trên bất kỳ nền tảng nào trong số này và ngày càng dựa vào nhiều nền tảng để đáp ứng nhiều yêu cầu. Việc lựa chọn phần cứng và hệ điều hành cơ bản dựa trên một số yếu tố, chủ yếu là lượng dữ liệu được lưu trữ trong MinIO cộng với các yêu cầu về tích hợp với phần mềm, hiệu suất và bảo mật gốc đám mây khác.


Nhiều khách hàng của chúng tôi chạy MinIO trên kim loại trần, trong khi phần lớn chạy trên Kubernetes. Việc chạy nhiều phiên bản MinIO trong kiến trúc được đóng gói do Kubernetes điều phối là cực kỳ hiệu quả. Khách hàng của MinIO triển khai các khu vực mới và cập nhật dịch vụ mà không bị gián đoạn, với các cụm Kubernetes riêng biệt chạy trong từng khu vực và mục tiêu hoạt động là không chia sẻ gì để có khả năng phục hồi và mở rộng cao nhất.


Khách hàng chuyển sang MinIO vì nhiều lý do, bao gồm:


  • API tương thích S3
  • Triển khai bất khả tri trên đám mây nhiều đám mây
  • Quản lý ACL kiểu IAM kiểu S3
  • Lưu trữ phân tán và có khả năng chịu lỗi bằng cách sử dụng Mã hóa xóa
  • Phân tầng và phân phiên bản các đối tượng trên nhiều cụm
  • Sao chép nhóm và site-to-Site
  • Sao chép hàng loạt thông qua Batch Framework
  • Mã hóa dữ liệu máy khách và đối tượng phía máy chủ
  • Mã hóa dữ liệu mạng lớp vận chuyển


Do những lý do và môi trường đa dạng mà MinIO có thể được sử dụng và cài đặt, nên thực tế là có một số nguồn dữ liệu đã lưu trữ dữ liệu mà bạn muốn truy cập vào MinIO.


Trong bài đăng này, hãy xem xét một số công cụ có sẵn để lấy dữ liệu ra khỏi S3, Hệ thống tệp cục bộ, NFS, Azure, GCP, Nền tảng nội dung Hitachi, Ceph và các công cụ khác cũng như vào các cụm MinIO nơi dữ liệu có thể được tiếp xúc với AI gốc đám mây /ML và các gói phân tích.

Khách hàng MinIO

Để bắt đầu, chúng tôi sẽ sử dụng MinIO Client (mc) trong suốt bài đăng này cho một số tùy chọn trong số này. Hãy đảm bảo cài đặt nó và đặt bí danh cho Máy chủ MinIO đang chạy của bạn.


 mc alias set destminio https://myminio.example.net minioadminuser minioadminpassword


Chúng tôi sẽ bổ sung thêm một số bí danh “nguồn” khi chúng tôi thực hiện các phương pháp khác nhau.

Hệ thống tập tin

Phần lớn các trường hợp sử dụng để di chuyển dữ liệu vào MinIO bắt đầu bằng hệ thống tệp được gắn hoặc ổ đĩa NFS. Trong cấu hình đơn giản này, bạn có thể sử dụng mc mirror để đồng bộ dữ liệu từ nguồn đến đích. Hãy coi mc mirror như một con dao quân đội Thụy Sĩ để đồng bộ hóa dữ liệu. Người dùng sẽ không phải chịu gánh nặng trong việc xác định cách tốt nhất để tương tác với nguồn mà bạn đang tìm nạp đối tượng. Nó hỗ trợ một số nguồn và dựa trên nguồn bạn đang lấy từ đó, các chức năng phù hợp sẽ được sử dụng để kích hoạt chúng.


Ví dụ: hãy bắt đầu với một Hệ thống tệp đơn giản được gắn từ đĩa cứng vật lý, đĩa ảo hoặc thậm chí thứ gì đó giống như giá treo GlusterFS. Miễn là hệ điều hành có thể đọc được hệ thống tệp thì MinIO cũng có thể đọc được:


 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


Giả sử các đối tượng của bạn nằm trong /home/mydata , sau đó bạn sẽ chạy lệnh sau để phản chiếu các đối tượng (nếu nhóm mydata chưa tồn tại, bạn sẽ phải tạo nó trước):


 mc mirror /home/mydata destminio/mydata


Lệnh này sẽ đảm bảo rằng các đối tượng không còn ở vị trí nguồn sẽ bị xóa khỏi đích hoặc khi các đối tượng mới được thêm vào nguồn, chúng sẽ được sao chép sang đích. Nhưng nếu bạn muốn ghi đè lên các đối tượng hiện có đã được sửa đổi trong nguồn, hãy chuyển cờ --overwrite .

NFS

Chia sẻ tệp mạng (NFS) thường được sử dụng để lưu trữ các đối tượng hoặc dữ liệu không thường xuyên được truy cập bởi vì, mặc dù phổ biến nhưng giao thức thường rất chậm trên mạng. Tuy nhiên, rất nhiều ETL và một số hệ thống cũ sử dụng NFS làm kho lưu trữ dữ liệu được sử dụng cho các hoạt động, phân tích, AI/ML và các trường hợp sử dụng bổ sung. Sẽ tốt hơn nếu dữ liệu này tồn tại trên MinIO vì khả năng mở rộng, bảo mật và hiệu suất cao của cụm MinIO, cùng với khả năng của MinIO trong việc cung cấp dịch vụ cho các ứng dụng gốc trên nền tảng đám mây bằng API S3.


Cài đặt các gói cần thiết để gắn ổ đĩa NFS

 apt install nfs-common


Đảm bảo thêm thư mục /home vào /etc/exports


 /home client_ip(rw,sync,no_root_squash,no_subtree_check)


Lưu ý: Đảm bảo khởi động lại máy chủ NFS của bạn, chẳng hạn như trên máy chủ Ubuntu

 systemctl restart nfs-kernel-server


Tạo thư mục để mount NFS mount

 mkdir -p /nfs/home


Gắn âm lượng NFS

 mount <nfs_host>:/home /nfs/home


Sao chép dữ liệu từ NFS sang MinIO

 mc mirror /nfs/home destminio/nfsdata


Vậy là xong, bây giờ bạn có thể di chuyển các đối tượng lớn của mình từ NFS sang MinIO.

S3

Như chúng tôi đã đề cập trước đó, mc mirror là con dao đồng bộ hóa dữ liệu của quân đội Thụy Sĩ. Ngoài các hệ thống tệp, nó còn sao chép các đối tượng từ các cửa hàng tương thích API S3 hoặc S3 và phản chiếu nó sang MinIO. Một trong những trường hợp sử dụng phổ biến hơn của tính năng này là phản chiếu bộ chứa Amazon S3.


Hãy làm theo các bước sau để tạo bộ chứa AWS S3 trong tài khoản của bạn. Nếu bạn đã có tài khoản hiện có với dữ liệu, chúng tôi cũng có thể sử dụng tài khoản đó.


Sau khi tạo một nhóm hoặc dữ liệu đã được thêm vào nhóm hiện có, hãy tạo chính sách IAM mới với khóa truy cập và khóa bí mật chỉ cho phép truy cập vào nhóm của chúng tôi. Lưu thông tin xác thực đã tạo cho bước tiếp theo.


Chúng tôi có thể làm việc với mọi bộ lưu trữ tương thích S3 bằng MinIO Client. Tiếp theo, hãy thêm bí danh bằng tên nhóm S3 mà chúng tôi đã tạo cùng với thông tin xác thực mà chúng tôi đã tải xuống


 mc alias set s3 https://s3.amazonaws.com BKIKJAA5BMMU2RHO6IBB V7f1CwQqAcwo80UEIJEjc5gVQUSSx5ohQ9GSrr12 --api S3v4


Dùng mc mirror copy dữ liệu từ S3 sang MinIO

 mc mirror s3/mybucket destminio/mydata


Tùy thuộc vào lượng dữ liệu, tốc độ mạng và khoảng cách vật lý đến khu vực lưu trữ dữ liệu bộ chứa, bạn có thể mất vài phút hoặc hơn để phản ánh tất cả dữ liệu. Bạn sẽ thấy một thông báo khi mc hoàn tất việc sao chép tất cả các đối tượng.

HDFS

Đối với bộ công cụ tiếp theo, chúng tôi viết các tập lệnh chuyên dụng để đáp ứng một số yêu cầu di chuyển dữ liệu trường hợp biên không chuẩn mà chúng tôi cần phải đáp ứng. Một trong số đó là việc di chuyển từ HDFS và Hadoop. Nhiều doanh nghiệp có rất nhiều dữ liệu được lưu trữ trong Hadoop đến mức không thể bỏ qua nó và bắt đầu làm mới với nền tảng gốc đám mây. Sẽ khả thi hơn nếu chuyển dữ liệu đó sang thứ gì đó hiện đại hơn (và có nguồn gốc từ đám mây) như MinIO và chạy ETL của bạn cũng như các quy trình khác theo cách đó. Nó khá đơn giản để thiết lập.


Tạo một tệp có tên core-site.xml với nội dung sau


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


Đặt các biến môi trường sau


 export HDFS_SOURCE_PATH=hdfs://namenode:8080/user/minio/testdir export S3_DEST_PATH=s3a://mybucket/testdir


Tải xuống tệp sau, chmod +x và chạy 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


Nếu bạn đã lưu trữ dữ liệu trong Hadoop được vài năm thì quá trình này có thể mất vài giờ. Nếu nó nằm trên cụm sản xuất thì chúng tôi khuyên bạn nên di chuyển dữ liệu ngoài giờ trong thời gian bảo trì để giảm thiểu tác động của bất kỳ sự suy giảm hiệu suất nào đối với cụm Hadoop của bạn trong khi dữ liệu đang được phản chiếu.


Thông tin chi tiết hơn về việc di chuyển từ HDFS sang MinIO có sẵn trong GitHub Repo này và chúng tôi cũng có một bài đăng trên blog, Di chuyển từ HDFS sang Lưu trữ đối tượng .

HCP

Trước đây chúng tôi đã viết một bài đăng blog thú vị về Nền tảng nội dung của Hitachi và cách di chuyển dữ liệu của bạn sang cụm MinIO. Tôi khuyên bạn nên đọc bài đăng trên blog để biết đầy đủ chi tiết nhưng mấu chốt như sau.


Sau khi bạn đã định cấu hình cụm HCP và tệp đầu vào cần thiết, hãy tải xuống công cụ di chuyển và chạy lệnh sau để bắt đầu quá trình di chuyể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

Ceph

Cuối cùng nhưng không kém phần quan trọng, chúng tôi đã giữ con voi trong phòng cho đến phút cuối cùng. Mặc dù đã cũ nhưng Ceph vẫn là một kho lưu trữ dữ liệu phổ biến và nó có API tương thích với S3. Nó được các dự án Kubernetes khác sử dụng làm phần phụ trợ cho việc lưu trữ đối tượng, chẳng hạn như Rook. Tuy nhiên, Ceph là một gã khổng lồ khó sử dụng để thiết lập và vận hành. Vì vậy, điều tự nhiên là mọi người muốn chuyển dữ liệu của mình sang thứ gì đó đơn giản hơn, dễ bảo trì hơn và có hiệu suất cao hơn.


Có hai cách để sao chép dữ liệu từ Ceph:


Tương tự như S3, vì Ceph có API tương thích với S3 nên bạn có thể thêm bí danh vào MinIO Client


 mc alias set ceph http://ceph_host:port cephuser cephpass


Sau đó, bạn có thể sử dụng mc mirror để sao chép dữ liệu vào cụm MinIO của mình


 mc mirror ceph/mydata destminio/mydata


Chúng tôi khuyên bạn nên chạy lệnh mc mirror với cờ --watch để liên tục theo dõi các đối tượng và đồng bộ hóa chúng với MinIO.

Di chuyển dữ liệu của bạn sang MinIO ngay hôm nay!

Chỉ có một vài ví dụ cho bạn thấy việc di chuyển dữ liệu của bạn sang MinIO dễ dàng như thế nào. Sẽ không thành vấn đề nếu bạn đang sử dụng các giao thức cũ hơn như NFS hoặc mới nhất và tốt nhất như S3, MinIO luôn sẵn sàng hỗ trợ bạn.


Trong bài đăng này, chúng tôi đã đi sâu vào chi tiết về cách di chuyển từ hệ thống tệp và các kho lưu trữ dữ liệu khác như NFS, hệ thống tệp, GlusterFS, HDFS, HCP và cuối cùng nhưng không kém phần quan trọng là Ceph. Bất kể ngăn xếp công nghệ nào đang chạy trên nó, MinIO phụ trợ đều cung cấp giải pháp lưu trữ đối tượng được xác định bằng phần mềm đơn giản, hiệu quả, bền bỉ và có thể mở rộng nhưng có thể mở rộng.


Nếu bạn có bất kỳ câu hỏi nào, vui lòng liên hệ với chúng tôi trên Slack !


Cũng được xuất bản ở đây .