Комментарии 45
Интересно, если сервер изначально планировался как backup storage для чего извращаться с BSD. Для таких задач лучше использовать open-e или openNAS.
Например список фич бесплатной версии Open-e:
www.open-e.com/products/open-e-dss-v6-lite/features/
Например список фич бесплатной версии Open-e:
www.open-e.com/products/open-e-dss-v6-lite/features/
А она умеет рулить массивом из 22Тб, в случае если он должен быть доступен по одной точке монтирования?
Как я понимаю тут либо zfs, либо ничего.
Или я ошибаюсь?
Как я понимаю тут либо zfs, либо ничего.
Или я ошибаюсь?
Ошибаетесь:
например ext4 умеет 1,048,576 TB:
ext4.wiki.kernel.org/index.php/Ext4_Howto#Bigger_File_System_and_File_Sizes
например ext4 умеет 1,048,576 TB:
ext4.wiki.kernel.org/index.php/Ext4_Howto#Bigger_File_System_and_File_Sizes
знаем, щупали. во-первых open-e пропиетарщина, соотв. что в админку засунули то и умеет. помнится нужно было сильно DFS поднять так выкусите…
а ZFS сравнивать со всем остальным — как мерседес с жигулями. Во фре конечно с бубнами заводится, лучше солярку, но всё равно рад за них.
а ZFS сравнивать со всем остальным — как мерседес с жигулями. Во фре конечно с бубнами заводится, лучше солярку, но всё равно рад за них.
The Open-E Data Storage Software V6 Lite (DSS V6 Lite)
is a FREE version of Open-E DSS V6 delivering unified file and block storage management operating system (OS) with Network Attached Storage (NAS) and Storage Area Network (SAN) functionality.
In order to evaluate free product, licensed for 2TB of storage simply register and download at our portal and get up to 10 versions at a time!
У меня как минимум 7 тер получилось. Тоже самое можно было сделать на OpenSolaris, но смысла городить огород ради одной машины нет. Тем более мне нужно было очень гибко разнести возможности доступа к этой машине для разных серверов.
is a FREE version of Open-E DSS V6 delivering unified file and block storage management operating system (OS) with Network Attached Storage (NAS) and Storage Area Network (SAN) functionality.
In order to evaluate free product, licensed for 2TB of storage simply register and download at our portal and get up to 10 versions at a time!
У меня как минимум 7 тер получилось. Тоже самое можно было сделать на OpenSolaris, но смысла городить огород ради одной машины нет. Тем более мне нужно было очень гибко разнести возможности доступа к этой машине для разных серверов.
Огромное спасибо за статью! вопрос — скорость передачи данных по сети 70-80 мегабайт в секунду — по какому протоколу?
samba :) Если правильно затюнить буфера samba вместе с буферами windows, то скорость будет очень высокой.
только буферы самбы и виндоуз, а буферы FreeBSD? поделитесь рецептом, я сколько ни тюнил больше 40 метров в секунду не выжимал, правда на UFS.
Присоединяюсь к просьбе.
Винду тюнил по вот этим двум книжкам.
www.redbooks.ibm.com/redpapers/pdfs/redp3943.pdf
www.redbooks.ibm.com/redbooks/pdfs/sg245287.pdf
Буфера Samba тюнил из расчёта уменьшения фрагментации пакетов и кратности буферов приёма-передачи размеру mss=1460 (mtu — 40 байт заголовка).
Буфера FreeBSD тюнил подбором параметров
www.redbooks.ibm.com/redpapers/pdfs/redp3943.pdf
www.redbooks.ibm.com/redbooks/pdfs/sg245287.pdf
Буфера Samba тюнил из расчёта уменьшения фрагментации пакетов и кратности буферов приёма-передачи размеру mss=1460 (mtu — 40 байт заголовка).
Буфера FreeBSD тюнил подбором параметров
net.inet.tcp.recvspace=32768
net.inet.tcp.recvbuf_auto=0
net.inet.tcp.recvbuf_inc=16384
net.inet.tcp.sendspace=32768
net.inet.tcp.sendbuf_auto=0
net.inet.tcp.sendbuf_inc=16384
В новой версии FreeBSD по умолчанию:
В FreeBSD 7.2-STABLE именование GPT разделов заработало — именно таким образом я осуществил переход с 7.2 на 8.0-BETA-2 и далее благополучно обновился до 8.0-STABLE.
> uname -rsm
FreeBSD 8.0-STABLE amd64
> sysctl vm.kmem_size
vm.kmem_size: 1334964224
> sysctl vm.kmem_size_max
vm.kmem_size_max: 329853485875
> sysctl vfs.zfs.arc_max
vfs.zfs.arc_max: 834352640
В FreeBSD 7.2-STABLE именование GPT разделов заработало — именно таким образом я осуществил переход с 7.2 на 8.0-BETA-2 и далее благополучно обновился до 8.0-STABLE.
ахренеть! респект! /me пошел перестраивать свои хранилища! 2гб оперативки теперь хватает для zfs? раньше юешено все тупило у меня при таком раскладе.
ну и самый банальный вопрос рабоатет ли iscsi? Пробывали вы по nfs делать доступ?
ну и самый банальный вопрос рабоатет ли iscsi? Пробывали вы по nfs делать доступ?
Нативного iscsi для zfs как в Solaris во фре нет.
iscsi тома можно сделать из файлов. я надеюсь таки smbshare и iscsi share перенесут на FreeBSD со временем.
огромное спасибо за статью. Сам собираюсь пройти через эти дебри, правда квалификации пока не хватает. Вопрос: есть ли опыт поставить FreeBSD на ZFS зеркало(чтобы защитить саму систему), если да, то какой метод использовали
Я ставил 8.0-STABLE на зеркало по методу описанному на офф сайте.
Основная проблема была в том, что после создания zraid система при копировании файлов для установки постоянно падала в панику. Победилось копированием небольшими кусками. Ну и последующей сборкой ядра с KVA_PAGES=512 и установкой при загрузке указанных в статье параметров.
В итоге получилось следующее:
# gpart show
=> 34 3900682173 aacd0 GPT (1.8T)
34 128 1 freebsd-boot (64K)
162 8388608 2 freebsd-swap (4.0G)
8388770 3892293437 3 freebsd-zfs (1.8T)
=> 34 3900682173 aacd1 GPT (1.8T)
34 128 1 freebsd-boot (64K)
162 8388608 2 freebsd-swap (4.0G)
8388770 3892293437 3 freebsd-zfs (1.8T)
=> 34 3900682173 aacd2 GPT (1.8T)
34 128 1 freebsd-boot (64K)
162 8388608 2 freebsd-swap (4.0G)
8388770 3892293437 3 freebsd-zfs (1.8T)
# zpool status
pool: zroot
state: ONLINE
scrub: none requested
config:
NAME STATE READ WRITE CKSUM
zroot ONLINE 0 0 0
raidz1 ONLINE 0 0 0
gpt/disk0 ONLINE 0 0 0
gpt/disk1 ONLINE 0 0 0
gpt/disk2 ONLINE 0 0 0
errors: No known data errors
Основная проблема была в том, что после создания zraid система при копировании файлов для установки постоянно падала в панику. Победилось копированием небольшими кусками. Ну и последующей сборкой ядра с KVA_PAGES=512 и установкой при загрузке указанных в статье параметров.
В итоге получилось следующее:
# gpart show
=> 34 3900682173 aacd0 GPT (1.8T)
34 128 1 freebsd-boot (64K)
162 8388608 2 freebsd-swap (4.0G)
8388770 3892293437 3 freebsd-zfs (1.8T)
=> 34 3900682173 aacd1 GPT (1.8T)
34 128 1 freebsd-boot (64K)
162 8388608 2 freebsd-swap (4.0G)
8388770 3892293437 3 freebsd-zfs (1.8T)
=> 34 3900682173 aacd2 GPT (1.8T)
34 128 1 freebsd-boot (64K)
162 8388608 2 freebsd-swap (4.0G)
8388770 3892293437 3 freebsd-zfs (1.8T)
# zpool status
pool: zroot
state: ONLINE
scrub: none requested
config:
NAME STATE READ WRITE CKSUM
zroot ONLINE 0 0 0
raidz1 ONLINE 0 0 0
gpt/disk0 ONLINE 0 0 0
gpt/disk1 ONLINE 0 0 0
gpt/disk2 ONLINE 0 0 0
errors: No known data errors
Пользуясь моментом (в этой теме собралось много нужно-умных людей):
— Народ, подскажите плиз, что лучше всего использовать для распределенного файлового хранилища?
Имеем:
— 6 серверов с Linux'ом,
— гигабитный 3COM свитч 4200G
Задача:
— отдача тучи картинок (размер от 3kb до 5mb) по http (желательно чтобы каждый этот сервер мог выступать в роли фронтенда отдачи картинок)
— возможность выхода из строя 1-2 серверов
— минимальное вмешательство в администрирование
Хотим попробовать GlusterFS, стоит он внимания или надо посмотреть на что-нибудь другое?
— Народ, подскажите плиз, что лучше всего использовать для распределенного файлового хранилища?
Имеем:
— 6 серверов с Linux'ом,
— гигабитный 3COM свитч 4200G
Задача:
— отдача тучи картинок (размер от 3kb до 5mb) по http (желательно чтобы каждый этот сервер мог выступать в роли фронтенда отдачи картинок)
— возможность выхода из строя 1-2 серверов
— минимальное вмешательство в администрирование
Хотим попробовать GlusterFS, стоит он внимания или надо посмотреть на что-нибудь другое?
Использовал GlusterFS для подобной задачи года полтора назад. В результате оказалось проще и быстрее ранжировать картинки по группам серверов, upload новых картинок отселиживался inotify, далее скрипт делал rsync на все сервера нужной нам группы.
wiki.lustre.org/index.php/Main_Page
Но не знаю как там с доступом к отдельным серверам — вроде все через meta сервера делается
Но не знаю как там с доступом к отдельным серверам — вроде все через meta сервера делается
>ZFS в Solaris разрабатывалась с учётом привязки дисков к номерам контроллеров и лунам на этих контроллерах.
и тут обманываешь людей :) ну вчера же проверяли на солярке. диски можно перетусовать местами, даже по разным контроллерам рассовать, всё равно шайтан найдет.
и тут обманываешь людей :) ну вчера же проверяли на солярке. диски можно перетусовать местами, даже по разным контроллерам рассовать, всё равно шайтан найдет.
ну значит правильно метит GPT.
Вот дамп с версии с gpt разделами
Вот дамп с машины где привязка идёт по имени устройства.
Вот еще с одной машины привязка.
называется почуйствуйте разницу.
Вот дамп с версии с gpt разделами
backupstorage# zdb storage version=13 name='storage' state=0 txg=2949 pool_guid=5702684262929827531 hostid=2532654325 hostname='' vdev_tree type='root' id=0 guid=5702684262929827531 children[0] type='raidz' id=0 guid=10462951798981416329 nparity=1 metaslab_array=23 metaslab_shift=36 ashift=9 asize=8001599569920 is_log=0 children[0] type='disk' id=0 guid=3783332541596737231 path='/dev/gpt/disk0' whole_disk=0 DTL=35 children[1] type='disk' id=1 guid=17895466354873902474 path='/dev/gpt/disk1' whole_disk=0 DTL=34 children[2] type='disk' id=2 guid=17183354981381863742 path='/dev/gpt/disk2' whole_disk=0 DTL=33 children[3] type='disk' id=3 guid=15309789136672692046 path='/dev/gpt/disk3' whole_disk=0 DTL=32 children[4] type='disk' id=4 guid=11995812205645754507 path='/dev/gpt/disk4' whole_disk=0 DTL=31 children[5] type='disk' id=5 guid=6063459237322854932 path='/dev/gpt/disk5' whole_disk=0 DTL=30 children[6] type='disk' id=6 guid=8145092386428344189 path='/dev/gpt/disk6' whole_disk=0 DTL=29 children[7] type='disk' id=7 guid=9189182978871328496 path='/dev/gpt/disk7' whole_disk=0 DTL=28
Вот дамп с машины где привязка идёт по имени устройства.
prmedia# zdb storage version=6 name='storage' state=0 txg=4 pool_guid=13934529001025246287 hostid=1760528258 hostname='' vdev_tree type='root' id=0 guid=13934529001025246287 children[0] type='raidz' id=0 guid=2084574688071794880 nparity=1 metaslab_array=14 metaslab_shift=32 ashift=9 asize=6001188143104 children[0] type='disk' id=0 guid=13825419530404204466 path='/dev/ad4' devid='ad:9VS0P65J' whole_disk=0 children[1] type='disk' id=1 guid=8367710449844254185 path='/dev/ad6' devid='ad:9VS0F68M' whole_disk=0 children[2] type='disk' id=2 guid=8977960755063011626 path='/dev/ad8' devid='ad:9VS01BGV' whole_disk=0 children[3] type='disk' id=3 guid=14908048518443631010 path='/dev/ad10' devid='ad:9VS0P4HF' whole_disk=0
Вот еще с одной машины привязка.
$ zdb smbss version=13 name='smbss' state=0 txg=236161 pool_guid=17217239028423194874 hostid=4247501507 hostname='' vdev_tree type='root' id=0 guid=17217239028423194874 children[0] type='raidz' id=0 guid=10166525209374749218 nparity=1 metaslab_array=23 metaslab_shift=32 ashift=9 asize=1399966138368 is_log=0 children[0] type='disk' id=0 guid=8564838834527224646 path='/dev/ad1' whole_disk=0 DTL=80 children[1] type='disk' id=1 guid=11770771462512284556 path='/dev/ad2' whole_disk=0 DTL=79 children[2] type='disk' id=2 guid=13668376697090075723 path='/dev/ad3' whole_disk=0 DTL=78 children[3] type='disk' id=3 guid=13300081630264141124 path='/dev/ad4' whole_disk=0 DTL=77 children[4] type='disk' id=4 guid=11183167337133163969 path='/dev/ad5' whole_disk=0 DTL=76 children[5] type='disk' id=5 guid=3010502291483550599 path='/dev/ad6' whole_disk=0 DTL=75 children[6] type='disk' id=6 guid=12858632936445829678 path='/dev/ad7' whole_disk=0 DTL=81
называется почуйствуйте разницу.
в солярке есть из коробки devid вида 'id1,sd@n600605b000965e40129da3040c725e27/a', которое походу не меняется при перестановке дисков. плюс как уже выяснили, 8мб раздел на каждом zpool-устройстве с внутренней инфой.
в общем подход весьма похож, разница что из коробки да и всё. в фре тоже со временем поправят )
в общем подход весьма похож, разница что из коробки да и всё. в фре тоже со временем поправят )
zdb
stor
version=14
name='stor'
state=0
txg=67576
pool_guid=1318916582355966918
hostid=4535124
hostname='lab-stor1'
vdev_tree
type='root'
id=0
guid=1318916582355966918
children[0]
type='raidz'
id=0
guid=17092437658460011700
nparity=1
metaslab_array=23
metaslab_shift=36
ashift=9
asize=9994928128000
is_log=0
children[0]
type='disk'
id=0
guid=7266466392856570407
path='/dev/dsk/c7t4d0s0'
devid='id1,sd@n600605b000965e401281d6da26c71a1b/a'
phys_path='/pci@0,0/pci8086,29f9@6/pci1000,1013@0/sd@4,0:a'
whole_disk=1
DTL=44
children[1]
type='disk'
id=1
guid=5382680510957273142
path='/dev/dsk/c7t1d0s0'
devid='id1,sd@n600605b000965e40129da3040c7d071f/a'
phys_path='/pci@0,0/pci8086,29f9@6/pci1000,1013@0/sd@1,0:a'
whole_disk=1
DTL=43
children[2]
type='disk'
id=2
guid=5634230046170865273
path='/dev/dsk/c7t2d0s0'
devid='id1,sd@n600605b000965e40129da3050c891253/a'
phys_path='/pci@0,0/pci8086,29f9@6/pci1000,1013@0/sd@2,0:a'
whole_disk=1
DTL=42
children[3]
type='disk'
id=3
guid=1867088018747561587
path='/dev/dsk/c7t3d0s0'
devid='id1,sd@n600605b000965e40129da3060c95c8e1/a'
phys_path='/pci@0,0/pci8086,29f9@6/pci1000,1013@0/sd@3,0:a'
whole_disk=1
DTL=41
children[4]
type='disk'
id=4
guid=1717292210218627046
path='/dev/dsk/c7t0d0s0'
devid='id1,sd@n600605b000965e40129da3040c725e27/a'
phys_path='/pci@0,0/pci8086,29f9@6/pci1000,1013@0/sd@0,0:a'
whole_disk=1
DTL=40
stor
version=14
name='stor'
state=0
txg=67576
pool_guid=1318916582355966918
hostid=4535124
hostname='lab-stor1'
vdev_tree
type='root'
id=0
guid=1318916582355966918
children[0]
type='raidz'
id=0
guid=17092437658460011700
nparity=1
metaslab_array=23
metaslab_shift=36
ashift=9
asize=9994928128000
is_log=0
children[0]
type='disk'
id=0
guid=7266466392856570407
path='/dev/dsk/c7t4d0s0'
devid='id1,sd@n600605b000965e401281d6da26c71a1b/a'
phys_path='/pci@0,0/pci8086,29f9@6/pci1000,1013@0/sd@4,0:a'
whole_disk=1
DTL=44
children[1]
type='disk'
id=1
guid=5382680510957273142
path='/dev/dsk/c7t1d0s0'
devid='id1,sd@n600605b000965e40129da3040c7d071f/a'
phys_path='/pci@0,0/pci8086,29f9@6/pci1000,1013@0/sd@1,0:a'
whole_disk=1
DTL=43
children[2]
type='disk'
id=2
guid=5634230046170865273
path='/dev/dsk/c7t2d0s0'
devid='id1,sd@n600605b000965e40129da3050c891253/a'
phys_path='/pci@0,0/pci8086,29f9@6/pci1000,1013@0/sd@2,0:a'
whole_disk=1
DTL=42
children[3]
type='disk'
id=3
guid=1867088018747561587
path='/dev/dsk/c7t3d0s0'
devid='id1,sd@n600605b000965e40129da3060c95c8e1/a'
phys_path='/pci@0,0/pci8086,29f9@6/pci1000,1013@0/sd@3,0:a'
whole_disk=1
DTL=41
children[4]
type='disk'
id=4
guid=1717292210218627046
path='/dev/dsk/c7t0d0s0'
devid='id1,sd@n600605b000965e40129da3040c725e27/a'
phys_path='/pci@0,0/pci8086,29f9@6/pci1000,1013@0/sd@0,0:a'
whole_disk=1
DTL=40
Насколько я помню для соляры в таких случаях есть export/import. А как с ним на фре? Не пробовали?
А такой вопрос. Почему именно ZFS?
Это в контексте «Мы заранее планировали схему без аппаратного рейда опираясь только на возможности ZFS.». Т.е. в данном случае интересует мотивация отказа от аппаратного рейда.
Это в контексте «Мы заранее планировали схему без аппаратного рейда опираясь только на возможности ZFS.». Т.е. в данном случае интересует мотивация отказа от аппаратного рейда.
Мотивация простая. Есть ленточный бекапный сторадж, ему в помощь для оперативного бекапа нужно было некоторое количество места. стоимость сервера в данном конфиге составила 90 тысяч рублей. Достойный контроллер который бы сделал RAID5 из этих дисков с хорошим объёмом кеша обошёлся бы примерно в 1.5к$. что увеличило бы стоимость сервера в полтора раза. Опыт использования ZFS ранее сподвиг именно на эту конфигурацию. ZFS достаточно стабильна для использования в работе. по крайней мере у нас несколько серверов на ней крутятся. в том числе с нарезанными виндовыми правами на ресурсы. Ну и плюс ко всему это намного удобнее при динамической смене конфигурации системы.
Понятно. Значит первопричина экономическая.
Сам сейчас стою перед выбором ФС под фряху. Брожу тут по сети и складывается впечатление, что с выходом восьмерки данная фс на этой оси очень становиться заманчива.
Не на бэкап сервере, а где либо на продакшене данную фс уже использовать приходилось?
За статью отдельное спасибо. Имхо на данный момент в рунете в контексте теоретического описания + практический опыт она самая лучшая.
Сам сейчас стою перед выбором ФС под фряху. Брожу тут по сети и складывается впечатление, что с выходом восьмерки данная фс на этой оси очень становиться заманчива.
Не на бэкап сервере, а где либо на продакшене данную фс уже использовать приходилось?
За статью отдельное спасибо. Имхо на данный момент в рунете в контексте теоретического описания + практический опыт она самая лучшая.
Я совсем запутался. Можно или нельзя добавлять в пул ZFS новые диски и тем самым увеличивать емкость?
Хотим в местной сетке сделать с помощью ZFS аля RAID5 (RAIDZ как я понял в терминологии ZFS).
В разных источниках — кто что пишет, кто можно, кто нельзя.
Хотим в местной сетке сделать с помощью ZFS аля RAID5 (RAIDZ как я понял в терминологии ZFS).
В разных источниках — кто что пишет, кто можно, кто нельзя.
Из того что вычитал… нельзя в существующий raidz добавлять диски =(
в документации по ZFS постоянно говорит о добавление устройств в пул mirror, про raidz ни слова
в документации по ZFS постоянно говорит о добавление устройств в пул mirror, про raidz ни слова
Скажите, почему нельзя было использовать статическую нумерацию дисков в ядре?
Просветите, зачем ставить vm.kmem_size меньше доступного объема ОЗУ?
Автору спасибо за проделанную работу и доходчивое объяснение.
Уже есть zpool с данными, переносить их тупо некуда из-за объёма. Но хотелось бы избавится от вышеописанной ошибки, которая в прочем, есть и при работе zfs на Linux машинах. Можно ли как-то пофиксить на живом да так, чтобы ничего не попортить?
Уже есть zpool с данными, переносить их тупо некуда из-за объёма. Но хотелось бы избавится от вышеописанной ошибки, которая в прочем, есть и при работе zfs на Linux машинах. Можно ли как-то пофиксить на живом да так, чтобы ничего не попортить?
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Правильное приготовление и работа с ZFS под FreeBSD