Saya memiliki mesin Debian di LAN saya yang berfungsi sebagai server cadangan untuk yang lain. Ini memiliki empat HDD digabungkan menjadi perangkat lunak RAID 5 md perangkat, pada LVM itu, dan pada btrfs itu. Cadangan dibuat menggunakan rsync, dan untuk sistem file besar butuh waktu lebih dari satu jam. Untuk waktu yang lama saya berpikir akan ada sedikit yang bisa saya lakukan tentang ini.
Namun baru-baru ini, saya perhatikan bahwa aktivitas HDD sangat berbeda di kedua ujung transfer. Sementara pihak pengirim, menjalankan Gentoo dan kebanyakan menggunakan ext4, hampir tidak memiliki IO disk sama sekali, sisi penerima selalu sibuk. Karena sebagian besar data tidak akan berubah di antara transfer, saya percaya bahwa membaca metadata harus menjadi bagian terbesar dari data. Tetapi saya akan sangat terkejut jika membaca inode dalam btrf jauh lebih berhasil daripada melakukan hal yang sama di ext4.
iotop
disk yang dikonfirmasikan membaca sekitar 1-4 MB / s di sisi penerima, sedangkan sisi pengirim hanya sesekali 0,5 MB / s meledak.
Pertanyaan saya adalah, adakah yang bisa menjelaskan apa yang terjadi di sini? Lebih disukai dengan beberapa indikasi bagaimana mengatasi masalah jika memungkinkan.
Mungkin ada beberapa flag tuning btrf yang bisa saya gunakan, atau yang serupa. Saya membutuhkan FS dengan kemampuan snapshot di server cadangan, dan upaya saya untuk menggunakan FreeBSD dan ZFS dengan cepat mengarah pada FS yang tidak konsisten, jadi saya melihat sedikit alternatif untuk btrf saat ini. Karenanya jawaban yang memberi tahu saya untuk menggunakan ext4 atau zfs mungkin menerima upvotes tetapi tidak ada tanda centang.
Opsi Rsync digunakan, seperti yang diminta oleh cjm :
--rsync-path='rsync --fake-super'
--archive # -rlptgoD
--hard-links # detect and preserve these
--acls
--xattrs
--sparse
--noatime # based on patch from samba #7249c1
--delete
--delete-delay
--fuzzy
--human-readable # size suffixes, base 1000
--stats
Serta banyak -f
aturan untuk menghilangkan beberapa file.
Opsi pemasangan btrfs dilaporkan oleh mount
as
rw,nosuid,noexec,noatime,nospace_cache
Secara khusus, ini termasuk noatime
flag, jadi tidak boleh ada tulisan yang terlibat kecuali sebenarnya ada perbedaan dalam beberapa file. Saya menambahkan informasi ini sebagai jawaban atas jawaban oleh Kyle Jones .
dtrace
atau systemtap
untuk mencari tahu di mana waktu yang dihabiskan.