2017-02-04 12 views
5

Tôi cần di chuyển 90 triệu tệp từ thư mục NFS vào thư mục NFS thứ hai, cả hai kết nối tới thư mục NFS đang sử dụng cùng eth0, đó là 1Gb/s cho các máy chủ NFS, không cần đồng bộ, chỉ di chuyển (ghi đè nếu nó tồn tại). Tôi nghĩ vấn đề chính của tôi là số lượng tệp, không phải là tổng kích thước. Cách tốt nhất nên là cách với các cuộc gọi hệ thống ít hơn cho mỗi tập tin vào thư mục NFS.Cách nhanh nhất để di chuyển 90 triệu tệp (270GB) giữa hai thư mục NFS 1Gb/s

Tôi đã thử cp, rsync và cuối cùng làparsync trước hết mất 10 giờ để tạo 12 GB gzip của danh sách tệp, sau 40 giờ và không có tệp nào được sao chép, nó hoạt động đến 10 chủ đề cho đến khi tôi hủy và bắt đầu gỡ lỗi, tôi thấy nó đang làm một cuộc gọi (stat?) một lần nữa để mỗi tập tin (từ danh sách) với các tùy chọn -vvv (nó sử dụng rsync):

[sender] make_file(accounts/hostingfacil/snap.2017-01-07.041721/hostingfacil/homedir/public_html/members/vendor/composer/62ebc48e/vendor/whmcs/whmcs-foundation/lib/Domains/DomainLookup/Provider.php,*,0)* 

lệnh parsync là:

time parsync --rsyncopts="-v -v -v" --reusecache --NP=10 --startdir=/nfsbackup/folder1/subfolder2 thefolder /nfsbackup2/folder1/subfolder2 

Mỗi rsync có dạng này:

rsync --bwlimit=1000000 -v -v -v -a --files-from=/root/.parsync/kds-chunk-9 /nfsbackup/folder1/subfolder2 /nfsbackup2/folder1/subfolder2 

Các thư mục NFS được gắn:

server:/export/folder/folder /nfsbackup2 nfs  auto,noexec,noatime,nolock,bg,intr,tcp,actimeo=1800,nfsvers=3,vers=3 0 0 

Bất kỳ ý tưởng làm thế nào để chỉ thị cho rsync để sao chép các tập tin đã có trong danh sách từ nfs vào thư mục nfs2? Hoặc bất kỳ cách nào để làm cho bản sao này hiệu quả (một cuộc gọi hệ thống cho mỗi tệp?)

+0

Tôi nghĩ rằng việc tối ưu hóa sự di chuyển của hàng triệu tập tin giữa hai gắn kết NFS có thể là một thách thức thú vị nhưng tôi hy vọng rằng nỗ lực phát triển so với tốc độ tăng sẽ tốt hơn khi xem xét thay đổi kiến ​​trúc để giảm số lượng tệp và/hoặc loại bỏ NFS. – mnagel

+0

@mnagel NFS được cung cấp bởi trung tâm dữ liệu như một dịch vụ dự phòng. Số lượng tệp là sản phẩm của một bản sao lưu gia tăng với 30 ngày lưu giữ trên 450 tài khoản Hosting. –

Trả lời

1

Tôi đã gặp vấn đề giống nhau một lần và tôi thấy rằng tốt nhất là chỉ cần chạy lệnh tìm và di chuyển từng tệp riêng lẻ.

cd /origin/path 
find . | cpio -updm ../destination/ 

lệnh -u sẽ ghi đè lên các tập tin hiện có

+0

Bạn có thể cung cấp thêm một chút thông tin không? Lệnh dưới đây sẽ thực hiện một cp cho mỗi tập tin, una cp cùng một lúc, phải không? và nếu cần tạo thư mục sẽ làm điều đó? –

+0

Có cấu trúc thư mục nào được đính kèm với Tệp 90Mil không? –

+0

Các tệp nằm bên trong một cấu trúc thư mục. Không có 90 triệu tệp trong một thư mục. –

Các vấn đề liên quan