Назад | Перейти на главную страницу

zfs: zpool пробивается космическая карта - когда-нибудь исправлялась?

Для довольно полных и / или очень фрагментированных zpools я использую для включения отладки метаслабы (echo metaslab_debug/W1 | mdb -kw), чтобы избежать сбоя карты пространства и, как следствие, серьезного снижения производительности записи. Сама проблема вроде в старый и понял, по слухам, исправление "в работах" некоторое время так же, как и API дефрагментации, который, по-видимому, тоже должен помочь, но я не смог найти «официального» подхода, исправляющего его по умолчанию в производственном коде.

Я что-то упустил?

Некоторые данные среды: мои zpools имеют средний размер (обычно <10 ТБ) и в основном представляют наборы данных zfs с zvols, используя размер записи по умолчанию 8 КБ (который фактически является переменным из-за обычно включенного сжатия). На протяжении многих лет я наблюдал, как эта проблема появляется в разных версиях Solaris, особенно в устаревших zpool'ах, которые обрабатывают много данных. Обратите внимание, что это не то же самое, что zpool 90% full performance wall поскольку космическая карта ломается из-за попаданий фрагментации при значительно более низком уровне использования пространства (я видел, что это происходило на 70% на нескольких старых пулах)

К сожалению, одним словом: нет.

Одним словом: вроде как. Метод, с помощью которого ZFS находит свободное пространство для использования, был несколько изменен в последних сборках ZFS (Open-ZFS), чтобы несколько смягчить проблему - основная фрагментация остается, «исправление» заключается в том, что она меньше влияет на производительность.

Единственное истинное «исправление», которое вы можете использовать на данный момент, - это отправить zfs данные из пула, стереть пул и zfs отправить данные обратно. Очевидно, проблема снова появится позже, в зависимости от вашей рабочей нагрузки и того, насколько быстро вы фрагментируете космические карты.

Обсуждаются / разрабатываются и другие возможные исправления / обходные пути, но я, конечно, не смог назвать никакого ETA.