Raid для меняющегося набора винтов разного размера

Dasar

хочется странного.
хочется raid-5 поверх меняющегося набора винтов разного размера.
т.е. хочется следующее:
1. информация сохраняется при отказе одного из винтов.
2. место на винтах используется максимально, главное чтобы выполнялся п.1
3. при отказе одного из винтов - идет автоматическое или полуавтоматическое перестроение raid-а с тем, чтобы опять был выполнен п.1., (с соответствущим уменьшением объема раздела)
4. при добавлении нового винта - идет опять перестроение raid-а с максимальным использованием нового пространства, причем чтобы выполнялся п.1
т.е. видится такой сценарий
1. запускаем пустой raid. ответ raid-а - ок, у вас есть безопасный раздел размером 0
1. вставляем винт 200 гб. ответ - ок, но у вас все равно безопасный раздел размером 0
2. вставлем винт 500 гб. ответ - ок, у вас безопасный раздел размером 200
3. вставляем винт 250 гб ответ - ок, у вас безопасный раздел размером 450
4. вставляем винт 300 гб ответ - ок, у вас безопасный раздел 550гб (или сколько там - лень считать)
5. дохнет винт - 500 гб. ответ - фигово, у вас теперь безопасный раздел максимум 300гб, срочно удалите 200гб файлов или добавьте еще винт на 200гб, что бы раздел стал снова безопасный
можно ли такое сделать в домашних условиях? какие-то адекватные деньги потратить готов.

janlynn

если создать на каждом хдд слайсы одинакового размера - нет проблем, можно слепить рейд5, и даже hot spare pool можно сделать. По крайней мере svm и веритас точно асилят, может и другие тоже. Но это неэффективное использование места на дисках.

Dasar

если создать на каждом хдд слайсы одинакового размера - нет проблем
что такое слайсы?
и почему место будет тратиться неэффективно?

janlynn

Ну, кусок диска, partition, или как тебе удобнее. Неэффективно, поскольку максимальный размер сабдиска для рейда будет ограничен размером твоего самого маленького хдд. Т.е. если в конфиге используется минимальный диск 200гб, то от всех остальных дисков сможешь использовать только по 200гб.

Viktory-s

На уровне ФС-ок:
ZFS
BtrFS

viktor954

отвечу и тут - максимально технологически тебе подходит BeyondRAID. Напрягает только то, что он живёт только внутри Drobo.

Dasar

Неэффективно, поскольку максимальный размер сабдиска для рейда будет ограничен размером твоего самого маленького хдд. Т
такое решение понятно - так все raid-ы умеют. у меня такое даже где-то есть, но это неинтересно на длительных сроках, когда накапливается зоопарк винтов разного размера
я думал там что-нибудь умнее, бъем на виртуальные диски одиннакого размера - а потом как-нибудь пониманием, что вот такие диски умирают вместе, а вот такие раздельно..

Dasar

отвечу и тут - максимально технологически тебе подходит BeyondRAID. Напрягает только то, что он живёт только внутри Drobo
спасибо. смотрю уже
http://www.drobo.com/products/drobo.php
http://www.drobo.com/resources/beyondraid.php

Dasar

ZFS
тут - http://ru.wikipedia.org/wiki/ZFS - как минимум не нашел, что она умеет перестраиваться при последовательном отказе раз в неделю по винту (т.е. допустим когда у нас из изначальных 6 винтов, последовательно летят один, второй, третий)

Dasar

BtrFS
тут - http://xgu.ru/wiki/Btrfs - тоже ничего не нашел.
пишется, что это фактически zfs - только с другой лицензией.

Viktory-s

что она умеет перестраиваться
Автоматически пока нельзя, но с помощью детского по сложности скрипта всё указанное тобой можно сделать на BtrFS:
http://btrfs.wiki.kernel.org/index.php/Using_Btrfs_with_Mult...
Какой раз отмечаю лёгкость в управлении этой ФС-кой.
Одно НО, она ещё в бэтта режиме, хотя уже доступна в 29 ядре.

Dasar

drobo всем хороша кроме двух взаимосвязанных факторов - цена и кол-во поддерживаемых винтов
в москве она продается за 30 тыс. при этом держит 4 винта - при таких условиях - на эти деньги проще купить 8 новых одиннаковых винтов и развернуть на них обычный raid, чем суетиться с подключением старых винтов.
вот если бы она держала винтов 16 (ну или стоила раза в 4 меньше) - тогда можно было попробовать поиграться.

Viktory-s

тут - http://ru.wikipedia.org/wiki/ZFS - как минимум не нашел, что она умеет перестраиваться при последовательном отказе раз в неделю по винту (т.е. допустим когда у нас из изначальных 6 винтов, последовательно летят один, второй, третий)
Тут:
http://en.wikipedia.org/wiki/ZFS
Сказано, что :
Dynamic striping
Dynamic striping across all devices to maximize throughput means that as additional devices are added to the zpool, the stripe width automatically expands to include them; thus all disks in a pool are used, which balances the write load across them.
[edit]

но (как-то противоречиво, в двух пунктах)
* Capacity expansion is normally achieved by adding groups of disks as a vdev (stripe, RAID-Z, RAID-Z2, or mirrored). Newly written data will dynamically start to use all available vdevs. It is also possible to expand the array by iteratively swapping each drive in the array with a bigger drive and waiting for ZFS to heal itself — the heal time will depend on amount of stored information, not the disk size. The new free space will not be available until all the disks have been swapped.
* It is currently not possible to reduce the number of vdevs in a pool nor otherwise reduce pool capacity.[17] However, it is currently being worked on[18]by the ZFS team. Still not available as of Solaris 10 10/08 (AKA update 6).
* It is not possible to add a disk to a RAID-Z or RAID-Z2 vdev. This feature appears very difficult to implement. You can however create a new RAID-Z vdev and add it to the zpool.

Dasar

Автоматически пока нельзя, но с помощью детского по сложности скрипта всё указанное тобой можно сделать на BtrFS:
а винты разного размера умеет?
те доки, которые бегло пролистал, нигде не фиксируется - винты должны быть одиннакового размера, или она умеет эффективно использовать и винты разного размера.

dgaf

автор хочет raid5
btrfs умеет 1, 0, 10.
кстати, md (soft raid) в 2.6.30 умеет:
raid5 в raid6 и обратно
уменьшать и увеличивать кол-во дисков в массиве
изменять размер блока

Dasar

еще подкинул ссылку на Windows Home Server Drive Extender
как найду лишний компьютер - попробую его поковырять

dgaf

когда это ещё будет

Viktory-s

а винты разного размера умеет?
Это базовое свойство этой ФС-ки.
Более того по указанной мной выше ссылке есть ещё более крутая функция "Hybrid Storage ". Она будит учитывать свойство твоих дисков и оптимально распределять по ним большие и малые файлы, для увеличения производительности. :shocked:

Dasar

автор хочет raid5
чуть уточню - я хочу дублированное хранение информации, причем желательно более эффективное, чем просто зеркалирование. именно в этом контексте я употребил слово raid5.
в целом - я готов поступиться и эффективностью при дублирование,
но только тогда стоит понимать, что решение в вида комбинации raid5+скрипта, которое периодически раскидывает важные файлы по разным дискам, по разным компьютерам - у меня уже и так есть.
хотелось именно что-то более прозрачное, более эффективное и требующего меньшего обслуживания и настройки, чем вот такая комбинация.

Viktory-s

The roadmap for adoption includes alpha tests on laptops this year followed by alpha tests on servers next year, preview releases on community distros in 2010, incorporation in production OSes in 2011 and the start of enterprise adoption in 2012. Even if btrfs is "feature complete" in 2009, it will require extensive work to debug and tune for optimized performance before it is enterprise-ready, he said. Another critical step ahead is the addition of a userspace filesystem consistency checker for file recovery, Ts'o said, adding that the last 20% of the project requires 80% of the effort.

Dasar

Это базовое свойство этой ФС-ки.
тогда еще такой вопрос: под каким дистрибутивом ОС - эту ФС стоит пускать?
от ОС требуется минимальное участие человека при настройке и работе,
желательно чтобы в этой ОС умел бегать mono

dangerr

Разве не очевидно, что под любым дистрибутивом GNU/Linux?
Или ты хочешь, чтобы тебе посоветовали конкретный дистрибутив?
минимальное участие человека при настройке и работе

С таким требованием это может либо вызвать холивар, либо быть проигнорировано, т.к. все устали от холиваров.

yroslavasako

минимальное участие человека при настройке и работе
можно ли считать красноглазика человеком?

Dasar

Разве не очевидно, что под любым дистрибутивом GNU/Linux?
Или ты хочешь, чтобы тебе посоветовали конкретный дистрибутив?
да, конкретный дистрибутив.
т.к. где-то может есть из коробки, а где-то надо руками впихивать

yroslavasako

любой дистриб, где есть ядро линукса свежее (или возможность его собрать/закачать бинарь). Плюс ещё нужно lvm и devmapper. В генте, например, всё это есть в портежах. Другого "из каробки" там не бывает.
Кстати, буду благодарен тому, кто поделится опытом пользования Sabayon линупса, насколько он юзабелен для специалиста и для новчика?

dgaf

>Плюс ещё нужно lvm и devmapper.
зачем?

yroslavasako

потому что btrfs должна работать поверх них. По крайней мере так было написано на их сайте ("тесная интеграция с devmapper")

dgaf

ничего подобного
linux-2.6 $ git grep dm_ fs/btrfs/
пусто

vall

btrfs какбы пока вообще не работает, что бы там не говорили пионеры.

yroslavasako

btrfs какбы пока вообще не работает, что бы там не говорили пионеры.
поправился. Возможно у кого-то она и работает, вот только у меня запустить не получилось, хотя я и не особо старался.

dgaf

чего там может не получиться.
монтирутся, dbench проходит, ошибок нет, больше не тестировал.
на спарке warning, но разрабам пока на него пофигу.

vall

по прямому назначению работать она пока не может — данные хранить в ней можно только имея бакапы и карму нужного цвета.

Viktory-s

тогда еще такой вопрос: под каким дистрибутивом ОС - эту ФС стоит пускать?
Очевидно, что не под каждым Линуксом, а только под тем у которого есть 29-е ядро и соответствующие утилиты.
Последний вопрос не существенен, оно везде есть, кроме тру сенсов и т.п.
Можно для экспериментов заюзать сегодня вышедший дистриб Parted Magic 4.0:
 Жирное замечание: ФС экспериментальная! Нужно быть очень осторожным с хранением данных на ней. + Много возможностей пока не реализовано!
Плюс её в том, что указанные тобой действия можно реализовать в скрипте длинной 4-5 строчек!
Легче решения под никсами я не знаю.

klyv

Пардон за некрофилию, но всёж.
Я правильно понимаю, что с ZFS тоже можно добавить к одному диску другой, и она сама раскидает нагрузку по 2м винтам?
То есть, вот есть у меня сейчас под NTFS диск, он заканчивается, надо будет покупать новый, хочу его уже подключать не к винде, так что если я на нём сделаю ZFS, перелью на него данные, а потом старый "присоединю" к новому, я получу распределённую нагрузку между 2мя винтами?
Оставить комментарий
Имя или ник:
Комментарий: