Я создаю домашний файловый сервер FreeBSD, используя ZFS.
Это AMD X2 3200+ с 3 ГБ оперативной памяти. Он имеет PCI Express Gig-E. Загрузочный диск - старый 400 ГБ, и у меня есть 4 750 ГБ дисков Seagte (один на разную версию прошивки, на всякий случай).
Загрузка из ZFS была бы хорошей (это упростило бы установку), но я использовал инструкции ZFSOnRoot для настройки диска Root / OS с ZFS (если все разделы являются ZFS, тогда не нужно делать fsck при загрузке проверить файловые системы UFS). Причина, по которой вы захотите этого, заключается в том, что вы можете затем настроить все свои разделы (/ var, / usr, / tmp и т. Д.) С различными необходимыми параметрами (такими как noatime и async для / usr / obj, что ускорит ядро). компилируется), но все они будут совместно использовать пространство из общего пула. Затем вы можете настроить диск данных и дать каждому пользователю свой собственный раздел (с разными цитатами и настройками). Затем вы можете делать снимки (которые стоят недорого на ZFS).
My home server has a df that looks like:
/dev/ad0s1a 1.9G 744M 1.1G 41% /
devfs 1.0K 1.0K 0B 100% /dev
dozer/data 1.8T 62G 1.7T 3% /data
dozer/home 1.7T 9.6G 1.7T 1% /home
dozer/home/walterp 1.9T 220G 1.7T 11% /home/walterp
tank/tmp 352G 128K 352G 0% /tmp
tank/usr 356G 4.4G 352G 1% /usr
tank/var 354G 2.2G 352G 1% /var
С точки зрения производительности, копирование файлов происходит очень быстро. Единственное, что я хотел бы отметить, это то, что я использовал ZFS на системах FreeBSD AMD64, которые имеют 3-4 ГБ, и это работало хорошо, но из моего чтения я бы побеспокоился о запуске его на системе i386, которая имела 2 ГБ или меньше памяти.
У меня закончились SATA-порты на материнской плате, поэтому я не пытался добавить новые диски. Первоначальная настройка была простой: команда для создания RAIDZ, а затем команда для создания / home, которая была отформатирована в секундах (IIRC). Я все еще использую более старую версию ZFS (v6), поэтому у нее есть некоторые ограничения (она не требует дисков одинакового размера, но в отличие от Drobo, если у вас было 3 диска 750 ГБ и диск 1 ТБ, конечный результат будет, как если бы у вас было 4 750GB дисков).
Одной из основных причин, по которой я использовал ZFS с RAIDZ, были сквозные контрольные суммы. CERN опубликовал документ, в котором задокументирован тест, в котором они обнаружили 200+ неисправленных ошибок чтения при выполнении теста R / W в течение нескольких недель (ECC в розничных накопителях, как ожидается, будет давать сбой после каждых считанных 12 ТБ). Я хотел бы, чтобы данные на моем сервере были правильными. У меня был тяжелый сбой из-за перебоя в питании (кто-то перегружал ИБП, подключив к нему обогреватель), но когда система может вернуться, ZFS вернулась быстро, без стандартных проблем с fsck.
Мне это нравится, потому что я могу добавить CUPS в Samba, чтобы получить сервер печати. Я добавил кэш DNS и могу добавлять другое программное обеспечение по своему усмотрению (я думаю о добавлении мониторинга SNMP к рабочим столам в моем доме для измерения использования полосы пропускания). За то, что я потратил на систему, я уверен, что мог бы купить дешевый NAS-блок, но тогда у меня не было бы 64-битного локального Unix-блока для игры. Если вам нравится FreeBSD, я бы сказал, что вам нужно. Если вы предпочитаете Linux, я бы порекомендовал решение для Linux. Если вы не хотите заниматься администрированием, тогда я выберу автономный NAS-блок.
На следующем этапе обновления оборудования я планирую обновить оборудование и установить текущую версию FreeBSD с ZFS v13. V13 - это круто, потому что у меня есть RAM-диск с резервным питанием от батареи, который я могу использовать для журнала ZIL (это заставляет писать крики) Он также поддерживает использование SSD для ускорения работы файлового сервера (спецификации на новых файловых серверах Sun хороши, и они получают их от системы ZFS, использующей SSD для очень быстрой работы системы).
РЕДАКТИРОВАТЬ: (еще не могу оставлять комментарии). Я в значительной степени следовал инструкциям на http://www.ish.com.au/solutions/articles/freebsdzfs . Единственное существенное изменение, которое существует в 7.X с момента написания этих инструкций, заключалось в том, что вышел 7.2, и если у вас есть 2+ ГБ, вам не нужно добавлять следующие три строки в /boot/loader.conf:
vm.kmem_size_max="1024M"
vm.kmem_size="1024M"
vfs.zfs.arc_max="100M"
В инструкциях также объясняется, как создать зеркало и как вернуть систему в режим восстановления (смонтировать с помощью ZFS). Поработав с его инструкциями один или два раза, я использовал руководство администратора ZFS от Sun http://opensolaris.org/os/community/zfs/docs/zfsadmin.pdf, чтобы лучше понять, что такое ZFS. Чтобы создать свое хранилище данных, я использовал измененную версию команды на странице 91 для создания пулов ZFS. Поскольку это FreeBSD, мне пришлось внести небольшое изменение:
zpool create dozer raidz /dev/ad4 /dev/ad6 /dev/ad8 /dev/ad10
Где ad4-ad10 был найден с помощью команды dmesg | grep 'ata. * Master', это имена жестких дисков SATA в системе, которые будут использоваться для раздела с большими данными. На моей материнской плате первые три порта ata (ad0-3), где 4 порта PATA, а затем, поскольку каждый порт SATA является главным, нет старых номеров.
Чтобы создать файловую систему, я просто сделал:
zfs create dozer/data
zfs set mountpoint=/data dozer/tank
Вторая команда необходима, потому что я отключил стандартные точки монтирования для общих ресурсов.
Введение: я наконец собрал свою систему, и вот мои заметки, на случай, если она кому-нибудь поможет.
Цели:
Характеристики:
Дизайн:
Мы используем ZFS в качестве файловой системы, поскольку она получила такие положительные отзывы. ZFS в значительной степени требует, чтобы мы работали на 64-битной ОС, и любит много памяти, поэтому я должен получить как минимум 4Gb
Оборудование:
ABS Aplus ABS-CS-Монолит Черный SECC Steel ATX Full Tower Компьютерный корпус - 1 @ 69,99 $ http://www.newegg.com/Product/Product.aspx?Item=N82E16811215009
Жесткий диск Western Digital Caviar Green WD5000AADS 500 ГБ SATA 3,0 Гбит / с 3,5 "6 @ 347,94 $ (57,99 долл. США) http://www.newegg.com/Product/Product.aspx?Item=N82E16822136358
XIGMATEK XLF-F1253 120-миллиметровый 4-дюймовый светодиодный вентилятор в корпусе на 120 мм - 1 @ 8,99 $ http://www.newegg.com/Product/Product.aspx?Item=N82E16835233015
LITE-ON Черный IDE DVD-ROM Модель iHDP118-08 - 1 @ 19,99 $ http://www.newegg.com/Product/Product.aspx?Item=N82E16827106275
Важнейший 4 ГБ (2 x 2 ГБ) 240-контактный DDR2 SDRAM DDR2 800 (PC2 6400) CT2KIT25664AA800 - 1 @ 45,99 $ http://www.newegg.com/Product/Product.aspx?Item=N82E16820148160
GIGABYTE GA-MA74GM-S2 AM2 + / AM2 AMD 740G Micro ATX Материнская плата AMD - 1 @ 54,99 $ http://www.newegg.com/Product/Product.aspx?Item=N82E16813128342
OKGEAR 18 "SATA II кабель Модель GC18ATASM12 - 6 @ 11,94 $ (1,99 $ ea) http://www.newegg.com/Product/Product.aspx?Item=N82E16812123132
Двухъядерный процессор AMD Athlon 64 X2 5050e с тактовой частотой 2,6 ГГц и 2 ГГц процессором AM2 45 Вт, модель ADH5050DOBOX - 1 @ 62,99 $ http://www.newegg.com/Product/Product.aspx?Item=N82E16819103298
KINGWIN Mach 1 ABT-1000MA1S 1000 Вт ATX / BTX Блок питания - 1 @ 199,99 $ http://www.newegg.com/Product/Product.aspx?Item=N82E16817121037
Диск Seagate 400 ГБ IDE - 1 @ (имел в шкафу), но 80 ГБ IDE-дисков стоят около $ 37,00, а 80 ГБ более чем достаточно.
Кронштейн адаптера для жесткого диска IDE для установки в пятидюймовый отсек - 1 @ ~ 17,00 $
Доставка - 1 @ ~ 35,00 $
Программное обеспечение: FreeBSD 7.2 - 1 @ $ 0.00 http://www.freebsd.org/
Общая стоимость: 874,81 $
Настройка оборудования: базовая сборка компьютера с тремя незначительными проблемами.
У купленного мною чехла были слоты для 6 жестких дисков и два 3,5 отсека. Я предположил, что IDE может поместиться в одном из 3,5 отсеков. Это было плохое предположение, и не было никакого разумного способа заставить это работать. Я пошел и купил адаптер у Фрая за ~ 17 долларов, и он работал нормально.
Кабели Sata, которые я купил, имели разъемы на 90 градусов, что было приятно, за исключением шести приводов, не было никакого способа сделать работу. При подключении одного кабеля негибкая часть разъема зависла над следующим жестким диском. Я должен был пойти на Фрая и 5 обычных кабелей SATA. К сожалению, те, что я купил в Newegg, были настолько дешевы, что не стоит отправлять их обратно.
Корпус направляет заднюю часть жестких дисков на боковую сторону корпуса, а силовые кабели от блока питания имеют жесткий разъем, выступающий над краем корпуса. Это не позволило мне сдвинуть боковую крышку на место. Мне пришлось немного поиграться с ним, чтобы заставить его работать, и в итоге получилось, что два из модульных силовых кабелей (по четыре разъема SATA на каждом) чередовались между дисками, так что первый кабель с питанием от дисков 0, 2, 4 и второй, 1, 3 и 5 с питанием. Это позволило достаточно согнуть, чтобы я мог завязать их.
Настройка ОС:
Записал ISO-образы FreeBSD 7.2 на CD. Я мог бы использовать один DVD, но у меня не было ничего валяющегося.
Записал memtest86 + ( http://www.memtest.org/ ) на компакт-диск.
Включил только что собранный компьютер и вошел в биос, чтобы убедиться, что он видел все 7 дисков и DVD-ROM. Это сделал. Изменен порядок загрузки, чтобы сначала сделать CDROM.
Вставьте компакт-диск memtest86 + в только что собранный компьютер, перезагрузите его и оставьте работать на ночь. Прошло без ошибок.
Установленная FreeBSD 7.2, если вы не знакомы с этим, я рекомендую прочитать следующее: http://www.freebsd.org/doc/en/books/handbook/install.html Объяснить, что делать, гораздо лучше, чем я Можно. Вот мои конкретные настройки:
После установки и перезагрузки я заметил, что были обнаружены только 4 из 6 дисков SATA. Я зашел в BIOS и в разделе «Интегрированные периферийные устройства» изменил тип OnChip SATA на AHCI, а порт 4/5 типа OnChip SATA на «SATA». Сохраненные настройки и перезагрузка.
На данный момент FreeBSD обнаружил все шесть дисков как: ad4 ad6 ad8 ad10 ad12 ad14
Получите последние данные из cvs, используя csup: csup -g -L 2 stable-supfile. Я уже отредактировал файл, чтобы использовать host: cvsup11.us.FreeBSD.org, оставив всю остальную информацию как есть.
Пересобрал и установил последнее ядро и мир, как описано здесь: http://www.freebsd.org/doc/en/books/handbook/makeworld.html Настроил мое ядро (см. ZFSNAS). Я отключил большой набор устройств, так как я никогда не планировал использовать SCSI, USB, PCMCIA, Serial, Parallel и т. Д., Добавив следующее в /etc/make.conf: CPUTYPE = athlon64 CFLAGS = -O2 -fno-strict-aliasing -pipe make -j8 buildworld
Настройка NAS:
Создайте пул ZFS для нашего хранилища: zpool создать хранилище raidz2 ad4 ad6 ad8 ad10 ad12 ad14
Создайте домашнюю файловую систему во вновь созданном хранилище:
отредактируйте /etc.rc/conf и добавьте следующее:
Это монтирует файловые системы ZFS при загрузке.
Созданы каталоги root, samba и перформанс
Если вам не нужно больше файловых систем в вашем пуле, вы почти закончили с частью ZFS. Для получения дополнительной информации см. Следующее: http://www.freebsd.org/doc/en/books/handbook/filesystems-zfs.html http://opensolaris.org/os/community/zfs/docs/zfsadmin.pdf
Порты установлены:
Добавленные пользователи:
Созданные группы:
Конфигурация Samba:
источник
Я не вижу причин, по которым вы захотите этого сделать, я думаю, что поддержка снимков в OpenSolaris достаточно зрелая, чтобы вы могли переключиться обратно на более старую версию и загрузить ее (но на самом деле это просто дикая догадка).
Добавить как расширить полосатый пул? Просто добавьте диск в бассейн, вот и все. Подумай о последствиях твоего следующего вопроса.
Вы можете использовать его как полосу и указать ZFS хранить n копий файла. Таким образом, вы можете использовать полную доступность хранилища и при этом получить приличную избыточность
Замена устройств в пуле хранения Я думаю, что это рекомендуемое решение, самый простой способ выяснить, насколько хорошо это работает на FreeBSD, - это попробовать.
Задумывались ли вы о том, что FreeNAS (Roadmap) 0.70 собирается быть выпущенным и будет поддерживать ZFS.
Вы избавите себя от хлопот всего фреймворка и получите относительно удобный бесплатный графический интерфейс.
источник
У меня есть серверы с FreeBSD + ZFS (на 7.2-STABLE и 8.0-CURRENT), а не на производстве.
Загрузка из ZFS описана здесь http://lulf.geeknest.org/blog/freebsd/Setting_up_a_zfs-only_system/
Добавить диски на лету так же просто, как набрать "zpool add mypool da7", новый диск можно использовать сразу после этого; Вы также можете добавить целую кучу дисков в полосу, зеркало, raidz (улучшенный raid-5) или raidz2 (улучшенный raid-6)
Диски разных размеров могут быть размещены в пуле, но не могут использоваться в зеркале / полосе / рейде (если я правильно помню, тогда будет использоваться только самое маленькое место на жестком диске)
(Open) Solaris имеет поддержку ZFS прямо из коробки
источник
Есть хорошая нить о создании домашнего ZFS NAS в ArsTechnica.
источник
У меня нет опыта работы с ZFS, но я только что увидел это в своем RSS-фидере:
http://www.freebsdnews.net/2009/06/10/zfs-version-13-freebsd-current/
Что говорит о том, что он созревает, но не готов к производству (во FreeBSD).
источник