Обратите внимание, что ответы на этой странице относятся к 2009 году, и на них нельзя полагаться как на Евангелие. Если у вас есть конкретный вопрос о zfs затем нажмите Задайте вопрос кнопку и задайте конкретный вопрос.
Я думал о создании домашней системы резервного копирования с использованием FreeBSD 7.2 и файловой системы ZFS. Кто-нибудь имел опыт работы с этой файловой системой?
В частности:
Любые другие мысли и предложения приветствуются.
Редактировать:
Для ясности я прочитал Страница FreeBSD на ZFS. Я ищу предложения от людей, имеющих практический опыт работы с настройками, подобными тому, что я хочу.
Я создаю домашний файловый сервер FreeBSD с помощью ZFS.
Это AMD X2 3200+ с 3 ГБ оперативной памяти. Он имеет PCI Express Gig-E. Загрузочный диск - старый 400 ГБ, и у меня есть 4 диска Seagte по 750 ГБ (один с другой версией прошивки, на всякий случай).
Было бы неплохо загрузиться из 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 диска по 750 ГБ).
Одной из главных причин, по которой я использовал ZFS с RAIDZ, были сквозные контрольные суммы. ЦЕРН опубликовал документ, в котором задокументирован проведенный ими тест, в ходе которого было обнаружено 200+ неисправленных ошибок чтения при выполнении теста чтения / записи в течение нескольких недель (ожидается, что 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-битную ОС, и ему нужно много памяти, поэтому я должен получить минимум 4 Гб
Оборудование:
ABS Aplus ABS-CS-Monolith Black SECC Steel ATX Full Tower Компьютерный корпус - 1 @ $ 69,99 http://www.newegg.com/Product/Product.aspx?Item=N82E16811215009
Western Digital Caviar Green WD5000AADS, 3,5-дюймовый жесткий диск емкостью 500 ГБ, SATA 3,0 Гбит / с 6 по цене 347,94 доллара США (57,99 доллара США за шт.) http://www.newegg.com/Product/Product.aspx?Item=N82E16822136358
XIGMATEK XLF-F1253 120-мм корпусный вентилятор с 4 белыми светодиодами и светодиодной подсветкой - 1 по 8,99 долларов США http://www.newegg.com/Product/Product.aspx?Item=N82E16835233015
LITE-ON Black IDE DVD-ROM Drive Model iHDP118-08 - 1 по 19,99 долларов США http://www.newegg.com/Product/Product.aspx?Item=N82E16827106275
Crucial 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 доллара США за шт.) http://www.newegg.com/Product/Product.aspx?Item=N82E16812123132
AMD Athlon 64 X2 5050e Brisbane 2,6 ГГц Socket 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
Диск IDE Seagate 400 ГБ - 1 @ (был в шкафу), но диски IDE объемом 80 ГБ стоят около 37 долларов США, а 80 ГБ более чем достаточно.
Кронштейн адаптера для жесткого диска IDE для установки в пятидюймовый отсек - 1 ~ 17 долларов США
Доставка - 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 на компакт-диск. Я мог бы использовать единственный DVD, но у меня его не было.
Сгорел memtest86 + ( http://www.memtest.org/ ) на компакт-диск.
Включил только что построенный компьютер и зашел в BIOS, чтобы убедиться, что он видит все 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, а тип порта SATA 4/5 OnChip на «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 create storage raidz2 ad4 ad6 ad8 ad10 ad12 ad14
Создайте домашнюю файловую систему на вновь созданном хранилище:
zfs create storage/home
cp -rp /home/* storage/home
rm -rf /home /usr/home
zfs set mountpoint=/home storage/home
отредактируйте /etc.rc/conf и добавьте следующее:
zfs_enable="YES"
Это монтирует файловые системы ZFS при загрузке.
Созданы каталоги root, samba и perforce
zfs create storage/root
cp -rp /root/* storage/root
rm -rf /root
zfs set mountpoint=/root storage/root
zfs create storage/fileshare
zfs create storage/perforce
Если вам не нужно больше файловых систем в вашем пуле, вы почти закончили с частью ZFS. Для получения более подробной информации см. Следующее: http://www.freebsd.org/doc/en/books/handbook/filesystems-zfs.html http://opensolaris.org/os/community/zfs/docs/zfsadmin.pdf
Установлено портов:
/usr/ports/shells/bash
make install
/usr/ports/editors/vim
make install
/usr/ports/net/samba33
make
make install
// Use all defaults un-check cups.
/usr/ports/devel/perforce
make
make install PERFORCE_PORT=XXXX PERFORCE_USER=p4user PERFORCE_GROUP=p4
rm -rf /usr/local/perforce
cd /storage/perforce/
mkdir root
mkdir log
chown p4user:p4user *
cd /storage
chown p4user:p4user perforce
Edited /usr/local/etc/perforce.conf as follows:
#
# Perforce FreeBSD configuration file
#
#
# $FreeBSD: ports/devel/perforce/files/perforce.conf.in,v 1.3 2005/01/18 15:43:36 lth Exp $
#
# Perforce ROOT
#
PERFORCE_ROOT="/storage/perforce/root"
#
# Perforce user (it is recommended to run p4d as a non-root user)
#
PERFORCE_USER="p4user"
#
# p4d/p4p port (default: 1666)
#
PERFORCE_PORT="XXXX"
#
# p4p cache directory
#
PERFORCE_PROXY_CACHE="/usr/local/perforce/cache"
#
# p4p target server (default: perforce:1666)
#
PERFORCE_PROXY_TARGET="perforce:1666"
#
# p4d options (see man p4d)
#
PERFORCE_OPTIONS="-d -p $PERFORCE_PORT -v server=1 -L /storage/perforce/logs/p4d.log"
#
# Uncomment this line to have the server started automatically
#
PERFORCE_START=yes
Добавлены пользователи:
user1
user2
Созданные группы:
sambashare
Added user1 and user2 as members
chgrp sambashare /storage/fileshare
chmod 775 /storage/fileshare
chmod g+s /storage/fileshare
Конфигурация Samba:
Samba configuration file:
#################
[global]
workgroup = USERLAN
server string = ZFS NAS
security = user
hosts allow = 192.168.1. 127.
log file = /usr/local/samba/var/log.%m
max log size = 50
passdb backend = tdbsam
dns proxy = no
[user1share]
comment = user1 share
path = /storage/fileshare
valid users = user1 user2
public = no
writable = yes
printable = no
create mask = 0765
#################
pdbedit -a -u user1
# followed prompts
pdbedit -a -u user2
# followed prompts
- Можно ли загрузиться с ZFS? (Хотел бы я?)
Я не вижу причин, по которым вы бы хотели этого, я думаю, что поддержка Snapshot достаточно развита только в OpenSolaris, чтобы вы могли вернуться к более старой версии и загрузить ее (но на самом деле это просто дикие догадки).
- Насколько легко добавить диск?
Добавить как в расширении полосатого пула? Просто добавьте диск в пул, вот и все. Подумай о последствиях твоего следующего вопроса.
- Насколько хорошо он работает с дисками разного размера?
Вы можете использовать его как полосу и указать ZFS хранить n копий файла. Таким образом, вы можете использовать всю имеющуюся у вас доступность хранилища и при этом получить приличную избыточность
- Можете ли вы добавить новые диски на лету (или хотя бы просто перезагрузив)?
Замена устройств в пуле хранения Думаю, это рекомендуемое решение, самый простой способ узнать, насколько хорошо оно работает во FreeBSD, - это, вероятно, попробовать.
- Будет ли мне лучше служить чем-нибудь готовым?
Вы считали FreeNAS (дорожная карта) 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)
Диски разных размеров могут быть помещены в пул, но не могут использоваться в зеркале / полосе / рейде (если я правильно помню, тогда будет использоваться только наименьшее место на жестком диске)
(Открыть) Solaris имеет поддержку ZFS прямо из коробки
Есть хороший нить по созданию домашнего ZFS NAS в ArsTechnica.
У меня нет опыта работы с ZFS, но я только что видел это в своем RSS-фидере:
http://www.freebsdnews.net/2009/06/10/zfs-version-13-freebsd-current/
Это говорит о том, что он созревает, но не готов к производству (во FreeBSD).