Как удалить дедупликацию из моего пула, не исчерпав ОЗУ?

У меня есть сервер с 8 дисковыми отсеками, заполненными дисками по 3 ТБ. Использование 4 зеркальных виртуальных машин vdev по 2 диска в каждом дает мне 12 ТБ избыточных хранилище.

Вот в чем проблема - я где-то читал, что мне нужно " все 16 потоков в моей системе переходят на 100%, и все 24 ГБ оперативной памяти внезапно заполняются (я вижу это через htop ), после чего моя система блокируется.

Можно ли как-нибудь раскопаться этой дыры, не разрушая весь мой пул и не начиная заново?

6
задан 22 September 2017 в 08:51
1 ответ

На самом деле я понял это самостоятельно, просто порывшись вокруг. Моя система автоматически монтировала тома ZFS во время загрузки. Если бы я загрузил свою систему в обычном режиме, она зависла бы во время загрузки с текстом «Выполняется задание запуска для монтирования наборов данных ZFS ...» или что-то в этом роде. Если бы я загрузился в режиме восстановления, он загрузился бы нормально и получил бы подсказку, но ZFS будет молча пытаться смонтировать мои наборы данных в фоновом режиме, что в конечном итоге заблокирует мою машину через 10-15 минут. Кроме того, это не позволяло мне вносить какие-либо изменения в мой пул.

Я обошел это, отключив задачу systemd zfs-mount.service и перезагрузившись в режим восстановления. Теперь я мог выборочно монтировать наборы данных и вносить изменения в свой пул, не блокируя машину.

Я все еще не решил свою проблему. Несмотря на то, что я отключил дедупликацию, скопировал все данные из моего дедуплицированного набора данных в новый и удалил старый набор данных, у меня все еще есть огромный DDT:

 dedup: DDT entries 29022001, size 975 on disk, 315 in core

bucket              allocated                       referenced
______   ______________________________   ______________________________
refcnt   blocks   LSIZE   PSIZE   DSIZE   blocks   LSIZE   PSIZE   DSIZE
------   ------   -----   -----   -----   ------   -----   -----   -----
     1    27.7M   2.78T   2.78T   2.78T    27.7M   2.78T   2.78T   2.78T
     2    1.65K    191M    191M    191M    3.30K    382M    382M    383M
     4       71   4.27M   4.27M   4.39M      310   19.4M   19.4M   19.8M
     8      132   16.3M   16.3M   16.3M    1.18K    149M    149M    149M
    16        3   32.5K   32.5K     36K       51    537K    537K    600K
    4K        1     16K     16K     16K    6.61K    106M    106M    106M
  128K        1    128K    128K    128K     146K   18.3G   18.3G   18.3G
 Total    27.7M   2.78T   2.78T   2.78T    27.8M   2.80T   2.80T   2.80T

Однако, поскольку я выяснил, что часть "заканчивается RAM" Я буду считать эту проблему решенной и, если потребуется, опубликую новый вопрос позже.


Быстрое редактирование: Мой ДДТ, похоже, сжимается, причем довольно быстро. Возможно, в свое время он сморщится и исчезнет. Посмотрим.

Еще одно быстрое изменение: Замечательно! ДДТ сокращался все быстрее и быстрее, пока, наконец, команда zpool status -D tank не вернула дедупликация: нет записей DDT .

5
ответ дан 3 December 2019 в 00:31

Теги

Похожие вопросы