> утверждение "чем проще системы, тем надежнее" ДАЛЕКО не всегда верно.
Конкретно к данному случаю пожалста, капитан о. Хотя, можно и не продолжать: исходя из того, что всё приходится вытягивать каждое слово, ничего полезного вы не скажете.
>>что надежнее: какой-то LVM, реализованные где-то в системе поверх всего железа сразу, или raid, который может быть одной микросхемкой на плате?
>Первое
> Староваты данные. Кажись, LVM уже научили использовать барьеры
hmmm.... А ведь действительно, судя по кодам ядра LVM (dm) транслирует все barrier вызовы на уровень ниже, хотя сам их не реализует особо (обвёртка функций есть, значит хоть частично, но реализованы).
Пруфлинк никто не встречал? Быстрый поиск не помог, дальше ломы :)
>hmmm.... А ведь действительно, судя по кодам ядра LVM (dm) транслирует все barrier вызовы на уровень ниже, хотя сам их не реализует особо (обвёртка функций есть, значит хоть частично, но реализованы).
>Пруфлинк никто не встречал? Быстрый поиск не помог, дальше ломы :)
А есть исходники под рукой? Покажите свежий drivers/md/dm.c про dm_request
Я понял, что там тупо все отрубают - мол not supported.
Я понял, что там тупо все отрубают - мол not supported.
Не, в том то и дело:
/*
* If we're suspended or the thread is processing barriers
* we have to queue this io for later.
*/
if (unlikely(test_bit(DMF_QUEUE_IO_TO_THREAD, &md->flags)) ||
unlikely(bio_barrier(bio))) {
up_read(&md->io_lock);
if (unlikely(test_bit(DMF_BLOCK_IO_FOR_SUSPEND, &md->flags)) &&
bio_rw(bio) == READA) {
bio_io_error(bio);
return 0;
}
queue_io(md, bio);
return 0;
}
Ну и сам request транслирует ниже всё:
static int dm_request(struct request_queue *q, struct bio *bio)
{
struct mapped_device *md = q->queuedata;
if (dm_request_based(md))
return dm_make_request(q, bio);
return _dm_request(q, bio);
}
> Я дополнил достоинства raid в проблеме отказоустойчивости примером хардварного рэйда.
А я доставал данные с дисков после глюка мегарейда (HP NetRAID) - контроллер такой, со своей памаятью-процессором-батарейкой, весь такой SAS и SCSI. Так вот - не удалось спасти ни одного файла длиннее 64 килобайт. Так что не надо нам тут про хардварные рейды и отказоустойчивость :-)
> речь о механизмах чтения и записи на половинки зеркала. Эти механизмы сильно отличаются от md-raid.
Ну я же и говорю - одна бабка сказала, а ты повторяешь как попугай. > А два состоит в том, что lvm не очень безопасен в случае сбоев по питанию. ... Есть мнение что lvm пофигу на барьеры, а значит теоретически можно развалить файловую систему поверх lvm.
lvm и md построены на одном уровне абстракции и именно этот уровень не умеет барьеры, так что md ни на грамм не лучше lvm в этом отношении.
> А нахера лишний геморрой надо, даже если бы он 1кб занимал?
Ну какая разница, журнал всеравно будет занимать место даже в md. В lvm можно его засунуть и в один из зеркалируемых разделов. Вариант с отдельным разделом просто разжеван много раз, но не обязателен. > Да и вообще, что надежнее: какой-то LVM, реализованные где-то в системе поверх всего железа сразу, или raid, который может быть одной микросхемкой на плате?
Ну это спорный вопрос. Железка может сгореть и найти 1:1 такую же может быть проблемой. Гибкость опять же. Да и сравнивал я md и lvm. Меня просто убивают товарищи, ставящие lvm поверх md.
> Меня просто убивают товарищи, ставящие lvm поверх md.
А что не так? LVM -- он для управления разделами, md -- для создания рейда. Подумай, какая пляска с бубном будет, если создать сначала raid0 средствами lvm (т.е. striped), а потом ввести в ту же группу томов просто еще один диск (например, дя выполнения миграции raid0 -> raid1)
>Да и сравнивал я md и lvm. Меня просто убивают товарищи, ставящие lvm поверх md.
/громкий смех в зале/ Похоже они это делают плохо или их мало, т.к. d9d9 жив пока...
Аргументы будут? Выше уже написали, что эти инструменты решают разные задачи. Usecase придумать нетрудно.
Очевидно, что городить огород и умножать сущности не нужно, но если "вдруг и все же", то в каком месте сломается? Мне интересно, т.к. я так не делал и готов выслушать мнение гуру.
>Вот снапшоты на уровне файловой системы - это вкуснее, чем на уровне блочного устройства.
Вкуснее. Но вот завалился у меня как-то lvm2. Я пробовал его поднять стандартными средствами, нестандартными, перечитал за пару дней кучу документации - нихрена не поднялось. Хорошо, что настроены бэкапы и все важное сохранилось.
>"По нашему мнению". Когда полагают обычно используют другие выражения, типа guess, think, suppose. Лично я "We believe" перевожу как "мы уверены".
Что одно и то же, т.е. это их мнение. Они говорят - мы считаем, что система готова к примененю в промышленности. Верят они, или считают - это все лишь их мнение. И данный чудесный глагол либо действительно говорит "я верю", либо говорит "знаете, я думаю, что вот так, а вы как считаете?".
> ZFSv13 в составе системы FreeBSD полностью готова для использования в промышленной эксплуатации. > Об этом говорит комментарий к ревизии 197221 SVN исходного кода FreeBSD.
Наша фирма в кредит не работает.
Не, ну правда, господа. Это не новость, а какая-то х-ня.
С каких пор комментарии к коммитам считаются показателем надежности и "готовности к продакшену"?
>md общается только с device-mapper, который барьеры не умеет. Каким образом работает исключение?
Тебе выдержку из сорцов? Может стоит для начала набрать в гугле "md raid 1 write barrier" и понять, что оно таки работало. В 29 ядре сломали, но сейчас вроде чинят. А еще в сети пачка тестов где md raid1 сливает зеркалу lvm именно по этой причине.
>> А мы ведь говорим о правильной избыточности?
>Так какая бабка тебе сказала что в md избыточность правильнее?
Я всего лишь говорил о зеркале, а не о всяких raid5 или еще каких вариациях.
>> LVM -- он для управления разделами, md -- для создания рейда
>Помоему это задача одного уровня. Появление zfs и btrfs тому подтверждение.
Массам захотелось чтоб было все и сразу - это модный тренд на упрощение. Вот только я считаю, делать монолитные решения типа zfs это не самый лучший вариант. Идеология VxVM+VxFS мне как-то ближе - функционал тот же, но сущности разделены и прекрасно живут отдельно, если что.