В ветку FreeBSD 8-STABLE
портирована (http://www.mail-archive.com/freebsd-stable@freebsd.org/...) 28 версия файловой системы ZFS. Пользователям стабильной версии FreeBSD 8.2 стали доступны такие возможности (http://www.opennet.me/opennews/art.shtml?num=29738) ZFSv28, как:- Дедупликация — автоматическое распознавание и объединение дубликатов данных. Если в нескольких файлах присутствуют аналогичные блоки данных, то они будут сохранены на физический носитель только один раз, что позволит существенно уменьшить потребление дискового пространства и увеличить производительность - вместо копирования блоков будет лишь изменена запись в соответствующей таблице.
- RAIDZ3 - вариант RAIDZ (http://blogs.sun.com/bonwick/ru/entry/raid_z_russian) с хранением трех копий, отвечающих за обеспечение целостности структур, что позволяет значительно повысить надежность хранения по сравнению с RAID-режимами с двойным дублированием - RAID-6 и RAIDZ2. Например, RAIDZ3 обеспечивае...
URL: http://www.mail-archive.com/freebsd-stable@freebsd.org/...
Новость: http://www.opennet.me/opennews/art.shtml?num=30797
> Например, RAIDZ3 обеспечивает целостность данных при одновременном выходе из
> стоя сразу трех дисковИз скольки?
И еще - лично мне сомнительно что дедупликация увеличивает производительность. Не мешало бы пруф какой нибудь подкинуть.
>> Например, RAIDZ3 обеспечивает целостность данных при одновременном выходе из
>> стоя сразу трех дисков
>Из скольки?+1. Странное заявление. Ибо тот же RAID-10 на восьми дисках может пережить одновременный выход из строя аж четырех устройств - правда, не каких попало.
> И еще - лично мне сомнительно что дедупликация увеличивает производительность.
> Не мешало бы пруф какой нибудь подкинуть.Здесь-то как раз все просто. Если данные уже "дедуплицированы" (т.е. стоимость поиска дубликатов уже уплачена), то нагрузки чтения могут быть шибко экономными как по объёму требуемых операций чтения (дубликаты два раза не читаем), так и по объёму требуемого кэша ввода-вывода.
RAID-10 может умереть от выхода из строя двух дисков
Кто тебе сказал что дубликаты два раза не читаем
Я вчера поставил в стойку сервер в котором 8 дисков в RAID-10.
RAID-10 образован как 4 пары RAID-1(mirror), объединенные в единый RAID-0 (strip)
В удачном случае RAID выдержит отказ четырех дисков, но только в том случае если все четыре диска окажутся в разных парах.
а RAIDZ3 выдержит потерю любых трех дисков, плюс диски которые "не любые".
И к тому же если дисков будет 10 или 16 - то это еще и увеличивает размер пула - (N-3)*XMb по сравнению с RAID10 N/2*XMb
>> Например, RAIDZ3 обеспечивает целостность данных при одновременном выходе из
>> стоя сразу трех дисков
> Из скольки?N + 3
ZFS радует все больше в редакции фребсд, по поводу повышения производительности при дедубликации, автору новости просьба прокомментировать, насколько я знаю она экономит место на носители, но производительность уж не как не повышает, наоборот требуются дополнительные вычислительные затраты на это дело, если я ошибаюсь поправьте
> ZFS радует все больше в редакции фребсд, по поводу повышения производительности при
> дедубликации, автору новости просьба прокомментировать, насколько я знаю она экономит
> место на носители, но производительность уж не как не повышает, наоборот
> требуются дополнительные вычислительные затраты на это дело, если я ошибаюсь поправьтеПроизводительность при записи она точно не увеличивает, так как вместо одной операции записи приходится делать две - данные и счетчик в таблице дедупликации, а для записи последнего еще может потребоваться выполнить некоторое количество чтений с диска (если таблица в память и/или L2ARC не помещается). Вот если бы ее в оффлайне можно было делать..
Читайте источник от создателя дедупликации: http://blogs.oracle.com/bonwick/en_US/entry/zfs_dedup"...the performance improvement is due to the elimination of disk writes when storing duplicate data, plus the reduced memory footprint due to many applications sharing the same pages of memory."
> Читайте источник от создателя дедупликации: http://blogs.oracle.com/bonwick/en_US/entry/zfs_dedup
> "...the performance improvement is due to the elimination of disk writes when
> storing duplicate data, plus the reduced memory footprint due to many
> applications sharing the same pages of memory."О, блог Бонвика для себя открыли, поздравляю.. Вот только на практике не все так радужно, как в блоге, написанном сразу после завершения работы, когда на практике еще толком-то и не использовали.. Как только начали - так очень много всего интересного узнали.
Ну то есть две записи только при записи первой копии, при записи последующих обновляется только счетчик в таблице дедупликации. Хотя все это относится только к блокам данных, а поскольку метаданные для дублей все равно нужно писать, записей получается не так уж и мало. Вобщем, быстро может быть пока DDT помещается в памяти целиком, как только она перестает там помещаться, становится значительно грустнее. Хорошо если L2ARC имеется - какая то часть там может поместиться.Некоторые имеют с этого нехилый бенефит с коэффициентом дедупликации 368: http://twitter.com/#!/NexentaEMEA/status/58858139356901376
Со всей ответственностью заявляю, что про производительность дедупликации в ZFSv28 я не писал. Кто-то другой добавил это от себя.Исходный текст новости, которую я запостил:
---
Сегодня ZFSv28 портирована в ветку FreeBSD 8.Пользователям стабильной 8.2 версии FreeBSD стали доступны такие фичи ZFS, как:
* Дедупликация — обнаружение на уровне файловой системы дубликатов блоков и сохранение только одной копии с восстановлением целостности различных файлов, содержащих этот блок, на лету. Экономит место на дисках в операционной среде jail'ов, располагающихся в одном пуле.
* RAIDZ3, вариант RAIDZ с хранением трех копий отвечающих за обеспечение целостности структур, что позволяет значительно повысить надежность хранения по сравнению с RAID-режимами с двойным дублированием — RAID-6 и RAIDZ2.
* Утилита «zfs diff», позволяющая просмотреть список изменений между двумя ZFS-снапшотами или между снапшотом и текущим состоянием ФС. Утилита отображает журнал изменений, переименований, создания и удаления файлов и каталогов.
* Команда «zpool split» для разделения отзеркалированного пула на несколько независимых пулов, минуя промежуточные операции клонирования.
* Счётчик ссылок на снапшот для защиты снапшотов от ошибочного удаления.
* Команда «zpool import -F», позволяющей перемотать поврежденный пул к состоянию, соответствующему более ранней группе транзакций, что позволяет с высокой вероятностью восстановить повреждённый пул из состояния FAILED.
* Импорт пула в режиме только для чтения.
* Оптимизации и тюнинг общей части подсистемы ZFS в FreeBSD.
---
вы от сюда http://www.opennet.me/opennews/art.shtml?num=27828 художественно скопипастили ?На размышления наводит последний пункт в вашем списке и подозрительное дословное совпадение некоторых кусков в вашем списке, например, про RAIDZ3, и zfs diff и zpool import.
Нет, не отсюда. Не скопипасил, а отредактировал перевод и выложил изменённую версию.По пунктам оригинального сообщения: http://www.mail-archive.com/freebsd-stable@freebsd.org/...
---
I have merged ZFS version 28 to 8-STABLE (revision 222741)New major features:
- data deduplication
- triple parity RAIDZ (RAIDZ3)
- zfs diff
- zpool split
- snapshot holds
- zpool import -F. Allows to rewind corrupted pool to earlier
transaction group
- possibility to import pool in read-only mode
---
Получается, что я всего лишь соавтор переводчика оригинального сообщения с добавлением подробностей.
>Поддержка команды zpool splitНаконец-то научились диски из raid1 выводить. Ещё бы научились их в raid5/6 добавлять, и поддержку рейда можно было бы считать полноценной.
>>Поддержка команды zpool split
> Наконец-то научились диски из raid1 выводить.ZFS mirror раньше в offline расщеплять было можно.
>>>Поддержка команды zpool split
>> Наконец-то научились диски из raid1 выводить.
> ZFS mirror раньше в offline расщеплять было можно.И в онлайн, причем с самого начала. Например, можно было сделать так:
zpool create tank mirror disk1 disk2
А потом избавиться от зеркала:
zpool detach tank disk1
А потом снова его создать:
zpool attach tank disk2 disk1
Раньше их можно было не "выводить", а исключать на всегда. При этом миррор при добавлении обратно строился с нуля, а "выведенный" диск не имел валидной фс.
> Раньше их можно было не "выводить", а исключать на всегда. При этом миррор при добавлении обратно строился с нуля, а "выведенный" диск не имел валидной фс.Ну значит я просто не понял, что конкретно имелось ввиду. Кстати, если это было одиночное зеркало, то отдетаченный диск без особых проблем превращался в самостоятельный пул при помощи легкой обработки напильником из zfs-discuss
Ну а теперь напильник не нужен. В смысле он теперь в наборе инструментов :)PS: Должно быть кРРРРуто для бэкапов ... ибо ленты - тормоза и ёмкость маловата. А тут берешь за $90.00 1.5TB SATA HDD ... песня же!
> Наконец-то научились диски из raid1 выводить. Ещё бы научились их в raid5/6
> добавлять, и поддержку рейда можно было бы считать полноценной.А сколько стоит железячный контроллёр, способный вводить в уже настроенный аппаратный RAID-5 новый диск?
Около 5 тыс рублей http://www.nix.ru/autocatalog/controllers_promise/Controller...
И как то к железному рэйду, у меня доверия больше, чем к рейду основанному на файловой системе, но это уже ИМХО.
Под каждую задачу, решение свое :)
вы имеете в виду именно добавление диска к уже существующему массиву??
>вы имеете в виду именно добавление диска к уже существующему массиву??Если я правильно читаю фразу:
"перенос данных на уровне RAID-массивов для увеличения емкости запоминающего устройства по необходимости."
http://www.promise.com/storage/raid_series.aspx?region=ru-RU...
Да.
Но конкретно этим рейдом не пользовался, мучаю выводок Intel RS2BL080
это не полностью аппаратный рейд-контроллер
> И как то к железному рэйду, у меня доверия больше, чем кА вот оракл почему то делает наоборот:
http://www.oracle.com/us/products/servers-storage/storage/un...причем это вам не какойто недорейд за 5тыс. рублей. Кроме того oracle настоятельно рекомендует не пользоваться никакими рейдами а все диски отдать напрямую zfs.
Кроме того напрочь отсутстую такой недостаток как:
http://davidfrancis.blogspot.com/2008/07/raid-5-write-hole.html
> Около 5 тыс рублей http://www.nix.ru/autocatalog/controllers_promise/Controller...Тут: http://forum.ixbt.com/topic.cgi?id=11:42195-17#493 мне сказали, что это "4660/8660 - программный контроллер, так что скорость будет примерно как на ICHxR. Я бы не рисковал. Тем более, что сейчас лето, жаркая пора в ЖКХ - ревизия хозяйства, в т.ч. электрики часто свет дёргают...".
> И как то к железному рэйду, у меня доверия больше, чем к
> рейду основанному на файловой системе, но это уже ИМХО.А ничего, что ZFS обеспечивает сквозную целостность данных, а железячный (недо-)RAID рапортует только об отвале носителя?
> Под каждую задачу, решение свое :)
Угу. И лучше, если бы не зависело от жизненного цикла конкретной железки. ;)
>Ещё бы научились их в raid5/6 добавлять, и поддержку рейда можно было бы считать полноценной.И наверняка научатся. Но это будет уже в проприетарной соляре, и сообществу останется сосать чупа-чупс :(
> Ещё бы научились их в raid5/6 добавлять, и поддержку рейда можно было бы считать полноценной.Мне кажется что если у меня стоит 8 дисков, то добавления одного или 2-ух мало что даст. А если дисков 16 или более, то это вообще капля в море. Посему самое нормальное решение это просто замена всех дисков на более емкие (например поменять одно терабайтные винты на двухтерабайтные), что сразу существенно увеличит размер пула. Благо в zfs это делается легко и просто и не нада этот гемор с одним несчасным диском.
а если и этого мало, то добавляем еще один raid5/6 в страйп с предыдущим. Если мало, опять raid5/6 в страйп к этим же. А вы про какой то диск талдычите. Шире нада мыслить, товарищи.
и не нада говорить вот мол, диск нельзя отуда вытащить - глупо. Приведите хоть один живой и правдоподобный пример когда кому то нада уменьшить размер пула. Типа бедный студент, есть нечего, вот один диск вытащу, продам - не канает.
в оригинале новости (в рассылке) говорилось про 8-STABLE. Это не то же самое, что 8.2И про производительность&дедупликацию. На запись при определённом типе данных, действительно, даёт существенный прирост производительности дисковой подсистемы
(разумеется, при этом создавая нагрузку на процессор).В качестве эксперимента можете залить несколько раз подряд один большой файл
при включенной и выключенной дедупликации. (например, при роли машины как бекапного сервера)
>> Например, RAIDZ3 обеспечивает целостность данных при одновременном выходе из
>> стоя сразу трех дисков
> Из скольки?RAIDZ N-1 (oн же Raid5)
RAIDZ2 N-2 (он же raid6)
RAIDZ3 N-3
RaidZx != Raid4+xреализация RaidZ принципильано другая, кроме того в ней нет проблемы write-hole.
И как это использовать? Например в 8.2?
Обновиться до РЕЛЕНГ_8, кэп.
Ждать 8.3
сменить админа
> И как это использовать? Например в 8.2?Например обновится из SVN
Имеет смысл держать PostgreSQL на ZFS? И не опасно ли это в плане стабильности ZFS?
> Имеет смысл держать PostgreSQL на ZFS?DIO в ZFS нет, так что не особо.
> И не опасно ли это в плане стабильности ZFS?
Если ZFS на соляре - не опасно. От фряшного порта остались не лучшие впечатления.
>> Имеет смысл держать PostgreSQL на ZFS?
> DIO в ZFS нет, так что не особо.Учиться обращаться с ZVOL для просвещения.
>> И не опасно ли это в плане стабильности ZFS?
> Если ZFS на соляре - не опасно. От фряшного порта остались не лучшие впечатления.Не лучшие впечатления от фряшного порта в 2007 году?
>Учиться обращаться с ZVOL для просвещения.Ну учитесь, учитесь.
>Не лучшие впечатления от фряшного порта в 2007 году?
Через несколько месяцев после того, как его объявили "ready for production". Точную дату не записал, извините.
> DIO в ZFS нет, так что не особо.Как так нету? а "zfs set primarycache=metadata" тогда что делает? К тому же, postgres всегда пользовался кэшем OS а не собственным. Ему DIO кроме как у pg_xlogs полностью противопоказан.
>> DIO в ZFS нет, так что не особо.
> Как так нету? а "zfs set primarycache=metadata" тогда что делает?Ограничивает использование L1-кэша метаданными. Ничего общего с DIO не имеет. // К.О.
Hint: отключенный кэш не является достаточным условием для DIO.
> Ограничивает использование L1-кэша метаданными. Ничего общего с DIO не имеет. // К.О.
> Hint: отключенный кэш не является достаточным условием для DIO.Хватит демагогию разводить. и префетч там отключается и синхронная запись есть.
> DIO в ZFS нет, так что не особо.А что тут имеется ввиду под DIO? Просто очень уж перегруженный разными смыслами термин:
http://blogs.oracle.com/bobs/entry/one_i_o_two_i
> Имеет смысл держать PostgreSQL на ZFS? И не опасно ли это в плане стабильности ZFS?На счет стабильности при наличии правильно выставленного лимита на arc size нареканий нет.
А вот про производительность впечатления весьма противоречивые. С одной стороны, если поток транзакций хорошо вписывается в кэш, postgres на ZFS работает намного быстрее UFS. С другой стороны вещи, читающие и пишущие большие объемы - pg_dump и vacuum - работают значительно тормознутей.
> Имеет смысл держать PostgreSQL на ZFS? И не опасно ли это в
> плане стабильности ZFS?базы
ssd + ufs
newfs -U -f 4096 adX
лог
sata + ufs
на zfs нет смысла
Обновился с 8.2 до
svn.freebsd.org/base/stable/8/ r222896
пересобрал ядро
zpool upgrade -v
пишет 15
должно работать?
> Обновился с 8.2 до
> svn.freebsd.org/base/stable/8/ r222896
> пересобрал ядро
> zpool upgrade -v
> пишет 15
> должно работать?обновляю через csup по тегу RELENG_8 - zpool v28
> Обновился с 8.2 до
> svn.freebsd.org/base/stable/8/ r222896
> пересобрал ядро
> zpool upgrade -v
> пишет 15
> должно работать?Вы забыли сделать апгрейд самих пулов.
>> Обновился с 8.2 до
>> svn.freebsd.org/base/stable/8/ r222896
>> пересобрал ядро
>> zpool upgrade -v
>> пишет 15
>> должно работать?
> Вы забыли сделать апгрейд самих пулов.Всё появилось только после make buildworld...)))
# zpool upgrade -v
This system is currently running ZFS pool version 28.
VER DESCRIPTION
--- --------------------------------------------------------
1 Initial ZFS version
2 Ditto blocks (replicated metadata)
3 Hot spares and double parity RAID-Z
4 zpool history
5 Compression using the gzip algorithm
6 bootfs pool property
7 Separate intent log devices
8 Delegated administration
9 refquota and refreservation properties
10 Cache devices
11 Improved scrub performance
12 Snapshot properties
13 snapused property
14 passthrough-x aclinherit
15 user/group space accounting
16 stmf property support
17 Triple-parity RAID-Z
18 Snapshot user holds
19 Log device removal
20 Compression using zle (zero-length encoding)
21 Deduplication
22 Received properties
23 Slim ZIL
24 System attributes
25 Improved scrub stats
26 Improved snapshot deletion performance
27 Improved snapshot creation performance
28 Multiple vdev replacements
>> Вы забыли сделать апгрейд самих пулов.
> Всё появилось только после make buildworld...)))
> # zpool upgrade -v
> This system is currently running ZFS pool version 28.Посмотрите вывод команды "zpool upgrade". Сразу всё станет ясно.
Перед тем как апгрейдить загрузочный пул, нужно записать новые загрузчики:
gpart bootcode -b /boot/pmbr <загрузочное устройство>
gpart bootcode -p /boot/gptzfsboot -i 1 <загрузочное устройство>
>>> Вы забыли сделать апгрейд самих пулов.
>> Всё появилось только после make buildworld...)))
>> # zpool upgrade -v
>> This system is currently running ZFS pool version 28.
> Посмотрите вывод команды "zpool upgrade". Сразу всё станет ясно.
> Перед тем как апгрейдить загрузочный пул, нужно записать новые загрузчики:
> gpart bootcode -b /boot/pmbr <загрузочное устройство>
> gpart bootcode -p /boot/gptzfsboot -i 1 <загрузочное устройство>Всt отлично! Вчера я тренировался на VMWare БЕЗ пулов)))
А сегодня сделал на реальной с мирором на борту!
Огромное спасибо за gpart bootcode но у меня системе на третьем диске не на мироре.
Это тестовая тоже машина: системный 20G + две 40G в зеркало с парой исошок (*.ISO) от FreeBSD а все остальное логи SQUID'a.
У в boot с zfs я пока не верю, может допилят скоро.
> У в boot с zfs я пока не верю, может допилят скоро.У меня с 2009 года, когда FreeBSD 8.0 ещё BETA2 была, загрузка с ZFS работает.
> У в boot с zfs я пока не верю, может допилят скоро.Он в вас тоже не верит - потому как неасилил.