Оптимизирован ZFS в среде с низким объемом оперативной памяти?

10

В настоящее время я настраиваю файловый сервер и приступил к настройке дисков с данными. Система имеет 4 диска (один диск с ОС, 3 диска с данными). Диск ОС отформатирован как ext4 и не будет добавлен в пул ZFS (если я выберу запуск ZFS). Моя главная проблема - целостность данных и минимальный риск потери данных (кэширование диска отключено в BIOS). Для этого ZFS кажется идеальным кандидатом, поскольку он имеет стабильную версию для Linux (верно?) И поддерживает дублирование данных, пул и raidz, где жесткие диски не обязательно должны быть одинакового размера.

Но вот моя проблема. Сервер имеет только 2 ГБ оперативной памяти, и это не может быть обновлено в ближайшем будущем, и реально только 1,5 будет фактически доступно для ZFS после того, как я установлю все другие службы. Максимум около 10 клиентов будут использовать его одновременно (более 4 в среднем). Это слишком низко, чтобы считаться безопасным?

Из того, что я понимаю, ZFS может аварийно завершить работу в ситуациях с нехваткой ОЗУ и взять с собой пул. Я слышал противоречивые мнения о том, поможет ли раздел подкачки решить эту проблему (у меня есть выделенный диск подкачки объемом 20 ГБ). Кто-нибудь испытывал потерю данных в ZFS с небольшим объемом оперативной памяти и какие оптимизации вы предприняли, чтобы предотвратить это?

Учитывая вышесказанное, можно ли будет по-прежнему запускать ZFS, хотя уменьшить размер ack и немного его урезать, или это будет слишком рискованно?

Системные спецификации: 2 ГБ ОЗУ, 20 ГБ, подкачка ОС, Debian 7, минимальная установка, с FTP, и XBMC, DNLA (чтобы понять требования к ОЗУ). Используется для сервера хранения и потоковой передачи музыки на другие устройства.

Томас Э
источник
1
Я не гуру ZFS, но я знаю немного о файловых системах в целом, и я знаю одно место, на которое вам придется обратить внимание - большое время - для потребления памяти является дедупликация данных. Вы не указываете, насколько велики ваши диски, и сколько данных будет на них; это огромно, поскольку ZFS должна хранить таблицу поиска в памяти. Я не могу говорить о других проблемах, но я бы определенно убил дедупликацию. Кроме того, btrfs достаточно зрел для резервных копий данных; вы рассматривали это? Проверьте arstechnica.com/civis/viewtopic.php?f=16&t=1226135 для некоторых идей (с которыми некоторые, без сомнения, не согласятся).
Равенпи
О да, я пропустил это. Пул будет 3.35 ТБ (как диски, так и данные, поскольку он будет ежедневно выполнять резервное копирование 9 клиентов, поэтому я думаю, что он будет заполняться быстро, я полагаю, что это означает отсутствие дублирования, так как freebsd предлагает 5 ГБ оперативной памяти для каждого пространства ТБ). Спасибо, что указали на btrfs, я не знал, что теперь он стабилен, я думаю, я хорошо его
Томас Э
«Стабильный» - это то, что я не спешу называть; кто-то не решается назвать ЛЮБОЙ, даже своего рода, новую файловую систему «стабильной». Но это там. LWN (Linux Weekly News) только что сделал серию об этом; это хорошо - проверьте это здесь: lwn.net/Articles/576276
ravenpi

Ответы:

5

Вы определяете целостность данных и минимальный риск потери данных в качестве основных проблем. Запуск ZFS только с 2 ГБ памяти опасен и не рекомендуется. Слишком мало ОЗУ снижает производительность и является причиной многочисленных несмонтируемых пулов в прошлом. Проект FreeNAS заявляет 8 ГБ ОЗУ как минимум.

Кроме того, поскольку ваша проблема заключается в потере данных, вы захотите использовать ECC RAM. Поскольку ваш компьютер может поддерживать только 2 ГБ ОЗУ, я предполагаю, что это действительно старый компьютер, который не будет хорошим выбором для ZFS.

Чтобы ответить на ваши вопросы:

[…] И поддерживает дублирование данных

На практике забудьте о дедупликации, когда у вас нет как минимум 32 ГБ, как правило. Вам может потребоваться значительно больше оперативной памяти, в зависимости от размера пула. Во-вторых, посчитайте, если затраты на дедупликацию и оперативную память дешевле, чем на несколько дополнительных дисков. Чаще всего больше дисков - более дешевая альтернатива.

Это слишком низко, чтобы считаться безопасным?

Да, это слишком низко.

Из того, что я понимаю, ZFS может аварийно завершить работу в ситуациях с нехваткой ОЗУ и взять с собой пул.

Это правда, и многие люди потеряли свои пулы из-за нехватки оперативной памяти.

Я слышал противоречивые мнения, поможет ли своп в смягчении этой проблемы

Забудьте о свопе, ваш ящик ZFS никогда не должен использовать своп.

РЕДАКТИРОВАТЬ: Если вы чувствуете себя предприимчивым и не боитесь риска случайной паники или потери данных, прочитайте руководство по настройке ZFS и измените указанные настройки. Вот пример настройки для системы объемом 768 МБ памяти.

vm.kmem_size="330M"
vm.kmem_size_max="330M"
vfs.zfs.arc_max="40M"
vfs.zfs.vdev.cache.size="5M"

В противном случае инвестируйте сотни долларов в полосу памяти и наслаждайтесь стабильной и производительной системой.

Marco
источник
3
Понимаю. Просто для уточнения, да, у меня есть ecc ram, а машина - это микро-сервер hp proliant gen7, который поддерживает до 8/16 ГБ оперативной памяти, но в настоящее время финансово нецелесообразно приобретать больше оперативной памяти. Я знал, что freenas рекомендовал 8 ГБ, однако в документации freebsd и Solaris предлагается минимум 1 ГБ, что и является причиной вопроса. Думаю, в свете этого мне следует придерживаться ext4 и зеркалировать вручную с помощью rsync и dd для автономных дисков, вероятно, самое безопасное решение.
Томас Э,
Можете ли вы объяснить, почему ZFS не должна использовать SWAP?
CMCDragonkai
Нет причин, по которым использование ZFS без ECC более опасно, чем запуск того же оборудования с другой файловой системой.
Алисия
5
Почему сообщество ZFS всегда комментирует с таким высокомерным снобизмом? Не каждый, кто хочет получить надежные данные за 100 долларов, просто бездельничает, чтобы удовлетворить некоторые совершенно нелепые требования к дизайну! У меня, например, есть небольшой домашний сервер ARM с 1 ГБ оперативной памяти и жесткие диски USB. Я хочу, чтобы данные на нем были защищены от гниения, так как они были обнаружены и исправлены, а также имели моментальные снимки для целей резервного копирования. Там нет необходимости в скорости. И btrfs просто сломан по дизайну. Таким образом, ZFS была бы разумной, если бы какой-то идиот не разработал ее так, чтобы она могла взорваться от депрессии, когда она имеет <128 эксабайт ОЗУ.
Evi1M4chine
0

В системах с высоким давлением памяти (linux) действительно необходимо обновить память. Есть еще ошибка ( ссылка ), когда подкачка блокирует IO (зависание ядра), что делает его непригодным для использования до перезагрузки. Я считаю, что vm.swappiness = X не влияет на zfs, поэтому ограничение дуги до определенного числа может немного помочь.

satch_boogie
источник