Що тримає одну сторону rsync настільки зайнятою?


11

У мене в мережі локальна машина Debian, яка служить резервним сервером для інших. Він має чотири жорсткі диски, об'єднані в програмний пристрій RAID 5 md, на цьому LVM і на цьому btrfs. Резервне копіювання робиться за допомогою rsync, а для великої файлової системи потрібно більше години. Довгий час я думав, що я з цим можу зробити мало.

Проте нещодавно я помітив, що активність HDD сильно відрізняється на обох кінцях передачі. У той час як сторона відправки, що працює під управлінням Gentoo і здебільшого використовує ext4, взагалі не мала дискового вводу-виводу, приймальна сторона постійно була зайнята. Оскільки більшість даних не змінюватиметься між передачами, я вважаю, що зчитування метаданих має складати основну частину даних. Але я був би дуже здивований, якщо читання inodes у btrfs - це стільки роботи, ніж те саме в ext4.

iotop підтверджені зчитування диска приблизно 1-4 Мб / с на приймальній стороні, тоді як сторона, що надсилає, мала лише випадкові 0,5 МБ / с.

Моє запитання: чи може хтось пояснити, що тут відбувається? Переважно з деякою ознакою, як вирішити проблему, якщо це можливо.

Можливо, є якийсь прапор налаштування btrfs, який я міг би використати, або щось подібне. Мені потрібен FS з можливістю знімків на резервному сервері, і моя спроба використовувати FreeBSD і ZFS швидко призводить до непослідовного FS, тому на даний момент я не бачу мало альтернативи btrfs. Тому відповіді, що говорять мені про використання ext4 або zfs, можуть отримувати надбавки, але немає галочки.


Параметри Rsync у використанні, як вимагає 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

А також купу -fправил пропускати деякі файли.


Параметри монтажу btrfs повідомляються mountяк

rw,nosuid,noexec,noatime,nospace_cache

Зокрема, це включає noatimeпрапор, тому не повинно бути жодних записів, якщо тільки в деяких файлах не було відмінностей. Я додав цю інформацію у відповідь на відповідь по Kyle Jones .


Які параметри rsync ви використовуєте?
cjm

Тільки зробивши знімок у темряві, у вас невдалий диск? Це може спричинити додатковий ввід / вивід, оскільки він намагається реконструювати відсутні дані з даних парності.
bahamat

@bahamat, у мене розумно працює, і він не повідомив про проблеми. Ні mdadm не повідомив жодних подій.
MvG

Справді важко сказати напевно, що не так. Всього один приклад - невідповідні розміри блоків серед шарів. Для того, щоб поставити діагноз, найкраще скористатися чимось подібним dtraceабо systemtapдізнатися, де витрачається час.
bahamat

@bahamat, це проспект, якого я ще не досліджував. Чи можете ви написати відповідь про те, як використовувати ці інструменти для діагностики проблеми? Було б чудово. Покрокові інструкції, якщо у вас є час, але навіть деякі грубі ідеї та покажчики документації були б дуже корисними.
MvG

Відповіді:


3

Одна з можливих відповідей - віддалена файлова система за замовчуванням встановлена ​​за допомогою параметра "atime". Час доступу записує все, що віддалений доступ до rsync у поєднанні з покаранням запису, який ви страждаєте з RAID 5 (обчислювальний паритет означає зчитування всіх RAID-дисків перед тим, як записати на один з них), може пояснити збільшення вводу / виводу на віддаленій стороні.

Якщо я маю рацію, ви можете прискорити роботу, встановивши віддалену файлову систему за допомогою параметра "noatime".


2
Добре продумано, але, на жаль, не рішення: файлова система вже встановлена ​​вперше. Mount звітує про набір усіх параметрів кріплення як rw,nosuid,noexec,noatime,nospace_cache.
MvG

1

Я підозрюю, що --fake-super варіанти. Це говорить rsync зберігати всю інформацію метаданих у розширених атрибутах у кожному файлі. Я підозрюю, що доступ до цих атрибутів є повільним. Спробуйте пробний запуск з rsync для root без --fake-super. Ви не можете повторно використовувати ту саму резервну копію, оскільки атрибути не збігаються.


Вам слід розглянути можливість розширення вашої відповіді, щоб включити кілька корисних посилань або посилань на документацію, яка підтримує ваше твердження.
HalosGhost

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.