Оптимизирован 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"

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


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, поэтому ограничение дуги до определенного числа может немного помочь.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.