[devel] zfs Re: архивирование репозиториев

Vitaly Chikunov vt на altlinux.org
Сб Авг 29 23:38:01 MSK 2020


On Sat, Aug 29, 2020 at 11:11:56PM +0300, Anton Farygin wrote:
> On 29.08.2020 22:28, Vitaly Chikunov wrote:
> > On Sat, Aug 29, 2020 at 07:58:55AM +0300, Anton Farygin wrote:
> > > с zfs вообще проблем нет.
> > ZFS сейчас используется для локального бакапа и бакапа архива в
> > московском офисе. Единственная проблема, что даже с большим кол-вом
> > памяти и cache и jil на быстром SSD, не удалось получить большую
> > скорость работы.
> > 
> А как оценивается скорость работы ? Может быть оно у нас тоже тормозит,
> просто я этого не замечаю.

При копировании задания сначала скриптом делается хардлинкование с уже
существующими локально файлами, а потом rsync всего нового поверх этого.
Так вот, это иногда может занимать до 5 минут (для репозитория одного
задания). Пример из лога:

  2020-08-07 19:34:18 :: Fetch task 255891 (p8)
  2020-08-07 19:34:18 :: Sync /archive/tasks/done/_249/255891
  = pre-linking... 0 links created (in 0.0 seconds)
  + exec rsync -aSHz --delete --no-inc-recursive archive:/archive/tasks/done/_249/255891/ /home/archive/tasks/done/_249/255891/
    rsynced in 0.5 seconds
  2020-08-07 19:34:18 :: Sync /archive//repo/p8/task/_249/255891
  = pre-linking... 118812 links created (in 234.0 seconds)
  + exec rsync -aSHz --delete --no-inc-recursive archive:/archive/repo/p8/task/_249/255891/ /home/archive/repo/p8/task/_249/255891/
    rsynced in 26.5 seconds
  2020-08-07 19:38:39 :: Fetch task 255900 (p9) [66%]

В среднем конечно бывает быстрее:

  = pre-linking... 200614 links created (in 29.6 seconds)
  = pre-linking... 190803 links created (in 36.0 seconds)
  = pre-linking... 200533 links created (in 32.2 seconds)
  = pre-linking... 118858 links created (in 241.8 seconds)
  = pre-linking... 200511 links created (in 32.1 seconds)
  = pre-linking... 190932 links created (in 28.6 seconds)
  = pre-linking... 200526 links created (in 34.9 seconds)
  = pre-linking... 118816 links created (in 18.2 seconds)
  = pre-linking... 190883 links created (in 47.6 seconds)
  = pre-linking... 191003 links created (in 27.2 seconds)
  = pre-linking... 190984 links created (in 27.2 seconds)
  = pre-linking... 190988 links created (in 29.2 seconds)
  = pre-linking... 190993 links created (in 28.5 seconds)
  = pre-linking... 190990 links created (in 32.0 seconds)
  = pre-linking... 190799 links created (in 57.2 seconds)
  = pre-linking... 190946 links created (in 42.2 seconds)
  = pre-linking... 190885 links created (in 29.1 seconds)
  = pre-linking... 190913 links created (in 27.8 seconds)
  = pre-linking... 190900 links created (in 35.4 seconds)
  = pre-linking... 190989 links created (in 27.3 seconds)
  = pre-linking... 190907 links created (in 31.6 seconds)
  = pre-linking... 190980 links created (in 32.8 seconds)

Даже пол минуты-минута для 200К файлов это как-то много. Хотелось бы в
10 раз быстрее. (В это время включено использование ssh find для
определения номеров inode на удаленной стороне и локально их
преобразование в имена файлов через rocksdb. Как я помню, при
тестировании в основном время занимает 2 вызова stat() на zfs).






Подробная информация о списке рассылки Devel