Редактирование: UNИX, весна 2008, 04 семинар (от 30 мая)
Материал из eSyr's wiki.
Внимание: Вы не представились системе. Ваш IP-адрес будет записан в историю изменений этой страницы.
ПРЕДУПРЕЖДЕНИЕ: Длина этой страницы составляет 41 килобайт. Страницы, размер которых приближается к 32 КБ или превышает это значение, могут неверно отображаться в некоторых браузерах. Пожалуйста, рассмотрите вариант разбиения страницы на меньшие части.
Правка может быть отменена. Пожалуйста, просмотрите сравнение версий, чтобы убедиться, что это именно те изменения, которые вас интересуют, и нажмите «Записать страницу», чтобы изменения вступили в силу.
Текущая версия | Ваш текст | ||
Строка 1: | Строка 1: | ||
- | + | * '''Официальная страница:''' http://uneex.mithril.cs.msu.su/Events/Storage | |
- | * '''Официальная страница:''' http://uneex. | + | |
* '''Дамп карточки (временный):''' http://esyr.org/photo/uneex_08_05_30/ | * '''Дамп карточки (временный):''' http://esyr.org/photo/uneex_08_05_30/ | ||
* '''Диктофонная запись:''' http://esyr.org/lections/audio/uneex_2008_summer/uneex_seminar_08_05_30.ogg | * '''Диктофонная запись:''' http://esyr.org/lections/audio/uneex_2008_summer/uneex_seminar_08_05_30.ogg | ||
Строка 6: | Строка 5: | ||
* '''Презентация с комментариями на основе конспекта (in progress):''' [[:Изображение:Storage_commented.odp|ODP]], [[:Изображение:Storage_commented.pdf|PDF]] | * '''Презентация с комментариями на основе конспекта (in progress):''' [[:Изображение:Storage_commented.odp|ODP]], [[:Изображение:Storage_commented.pdf|PDF]] | ||
- | = | + | = = |
== Введение == | == Введение == | ||
Строка 15: | Строка 14: | ||
Изображение:gq.jpg|Александр Герасёв (GQ) | Изображение:gq.jpg|Александр Герасёв (GQ) | ||
Изображение:ivlad.jpg|Владимир Иванов (ivlad) | Изображение:ivlad.jpg|Владимир Иванов (ivlad) | ||
- | Изображение:yrii.jpg|Юрий | + | Изображение:yrii.jpg|Юрий |
</gallery> | </gallery> | ||
С чего вдруг лектор рассказывает про такие вещи… | С чего вдруг лектор рассказывает про такие вещи… | ||
Строка 21: | Строка 20: | ||
<div class="comment">''ГК'': Давай мы сделаем маленькое объявление, я тут вижу много разного народу, некоторые знакомые лица, некоторые — нет. Что такое UNИX: эта аббревиатура имеет отношение к некоторому плавающему собранию людей, непрерывно обновляемому. Я так думаю, что некоторые из здесь присутствующих просто не знают о существовании этого мероприятия по причине того, что последние года два оно не проводилось вообще: последний семинар был ровно два года назад из тех, что проводились давно. Задача очень простая — делиться информацией в режиме реального времени. Я сказал, что сообщество плавающее, одно время я был активным инициатором этого безобразия, потом работа меня съела и появились студенты ответственные, которые взяли на себя всю организационную часть. Это уже третье публичное сборище. Я не знаю, сколько мы выдержим стиль две недели летом, следите за объявлениями. Поскольку, вопрос о том, что означает эта аббревиатура, обсуждался на ЛОРе, повторяться я не буду.</div> | <div class="comment">''ГК'': Давай мы сделаем маленькое объявление, я тут вижу много разного народу, некоторые знакомые лица, некоторые — нет. Что такое UNИX: эта аббревиатура имеет отношение к некоторому плавающему собранию людей, непрерывно обновляемому. Я так думаю, что некоторые из здесь присутствующих просто не знают о существовании этого мероприятия по причине того, что последние года два оно не проводилось вообще: последний семинар был ровно два года назад из тех, что проводились давно. Задача очень простая — делиться информацией в режиме реального времени. Я сказал, что сообщество плавающее, одно время я был активным инициатором этого безобразия, потом работа меня съела и появились студенты ответственные, которые взяли на себя всю организационную часть. Это уже третье публичное сборище. Я не знаю, сколько мы выдержим стиль две недели летом, следите за объявлениями. Поскольку, вопрос о том, что означает эта аббревиатура, обсуждался на ЛОРе, повторяться я не буду.</div> | ||
- | Дело в том, что мы, то есть ЛВК — бюджетная организация, и как это бывает, внезапно под новый год сказали, что есть полтора миллиона рублей, и их надо срочно потратить. Поскольку списка, чего надо, не было, решили, что места мало и пользователи любят хранить всякую мультимедию, в итоге возникла потребность во внешнем хранилище. Поэтому пришлось окунуться в то, что такое СХД, конкретно SAN, и очень много было вопросов, потому что господа, которые при ..., у них немножко другая терминология, а нас интересовали больше всякие разные технические вещи, как оно работает и как его использовать в той | + | Дело в том, что мы, то есть ЛВК — бюджетная организация, и как это бывает, внезапно под новый год сказали, что есть полтора миллиона рублей, и их надо срочно потратить. Поскольку списка, чего надо, не было, решили, что места мало и пользователи любят хранить всякую мультимедию, в итоге возникла потребность во внешнем хранилище. Поэтому пришлось окунуться в то, что такое СХД, конкретно SAN, и очень много было вопросов, потому что господа, которые при ..., у них немножко другая терминология, а нас интересовали больше всякие разные технические вещи, как оно работает и как его использовать в той инфрастурктуре, которую мы себе видели. Поэтому пришлось покопаться. Неоторое время назад лектор делал доклад на ЛВКшном студенческом семинаре о том, что я узнал, а это такая изменённая версия, без совсем простых вещей, но тем, не менее, версия того доклада. |
* ''ГК'': Будет упомянут какой-то конкретный сервер хранения данных, который был за полтора миллиона куплен? | * ''ГК'': Будет упомянут какой-то конкретный сервер хранения данных, который был за полтора миллиона куплен? | ||
Строка 101: | Строка 100: | ||
** ''Из зала'': Я не знаю, что такое RAID 5 и RAID 6. Всю свою несознательную жизнь я использовал 0+1. [[Image:Uneex 08 05 30 raid 0+1 man.jpg|thumb|Человек из зала, использующий RAID 0+1]] | ** ''Из зала'': Я не знаю, что такое RAID 5 и RAID 6. Всю свою несознательную жизнь я использовал 0+1. [[Image:Uneex 08 05 30 raid 0+1 man.jpg|thumb|Человек из зала, использующий RAID 0+1]] | ||
** ''ivlad'': Замечательно. На самом деле не факт, что она несознательная… | ** ''ivlad'': Замечательно. На самом деле не факт, что она несознательная… | ||
- | ** ''ГК'': А то есть мнение, что | + | ** ''ГК'': А то есть мнение, что "рейд" это набег |
- | ** '' | + | ** ''ivlad'': Понятно, что самый тупой способ хранить данные на нескольких дисках так, чтобы была устойчивость: первый байт записываем на первый диск, второй на второй, третий на третий, а на четвёртый XOR этих байт. Так работает '''RAID 3''', если не ошибаюсь. <!-- 31:00 --> |
- | ** ''ivlad'': | + | ** ''ivlad'': в 4 рейде есть большой бонус --- при добавлении нового диска можно сказать, что он забит нулями, контрольная сумма не изменяется и дополнительных телодвижений телодвижений делать не надо. |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | Комбинирование уровней рейда: | |
- | + | * Можно сделать зеркало над страйпами или страйп над зеркалами. Понятно, что отказоустойчивость у них разная. В случае, если вылетает два диска... | |
- | + | ** ivlad: Начнём с одного | |
- | + | ** А в случае одного всё одинаково | |
+ | ** ivlad: Нееет, по-разному ... | ||
+ | ** ... | ||
- | + | В случае, если вышел из строя один из дисков, то нужно как можно быстрее выйдет один диск, то нужно как можно быстрее вставить новые. Понятно, что на людей нельзя надеяться, то используют горячий резерв. | |
- | + | ||
- | + | Это один аспект отк., который отн. к сохр. данных, есть ещё аспект, отн. к доступности. Для этого есть техн., наз. MP. Есть ящик с дисками, он подключен к серверу. Есть порты ввода-вывода, которые подк. к серверу. Понятно, что они могут выйти из строя. Можно подключить два провода, тогда, если вылетает один, то всё равно они ост. соединены. И для того, чтобы это не требовало ручных изменений и настройки, сущ. подсистема MP, которая для нашего сервера делает вид, что у нас одни канал данных, но на самом деле два, и можно по ним ещё нагрузку раскидывать, например. | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | <!-- тут наверное что-то смешное, но я ничего разобрать не могу :( --> | ||
- | |||
- | Таким образом можно не только 0+1 и 1+0 объединять, но и 5+0, 1+0+0, и так далее. В случае, если вышел из строя один из дисков, возникает проблема как можно быстрее выйдет один диск, вдруг второй выйдет из строя. Так как на человека надеяться небезопасно, то для этого придумали добавлять hot spare диски, на которых ничего не хранится, и если один из дисков в RAID выходит из строя, то диск hot spare встаёт на его место. | ||
- | |||
- | === MultiPath === | ||
- | <!-- Слайд 13 --> | ||
- | [[Изображение:Uneex 08 05 30 slide13.png|thumb|left|240px]] | ||
- | Это один аспект отказоустойчивости, тот, который относится к сохранности данных, а есть ещё задача обеспечения доступности. В современных системах хранения данных для этого используется технология, которая называется MultiPath. Вот у нас есть некоторый ящик с дисками, и он подключен к серверу. Вот он подключён при помощи какого-то провода, и какие-то порты ввода/вывода на этом ящике, на этом сервере. Соответственно, это узлы, которые могут выйти из строя. Во-первых, ящик можно подключить двумя проводами, тогда, если вылетает один из портов или уборщица задевает шваброй один из проводов, то всё равно они остаются соединены. И для того, чтобы это не требовало ручных изменений и настройки, существует подсистема MultiPath, которая для нашего сервера делает вид, что у нас один канал данных, а под ней же лежат эти два канала, которые, во-первых, в случае выхода одного из строя можно использовать другой, во-вторых, если у нас слабое место по скорости эти каналы, то можно и нагрузку раскидывать по ним. В частности, мы это тоже используем. | ||
- | |||
- | === RAID-контроллеры === | ||
- | <!-- Слайд 14 --> | ||
- | [[Изображение:Uneex 08 05 30 slide14.png|thumb|left|240px]] | ||
Ещё один, совсем коротко, про RAID-контроллеры | Ещё один, совсем коротко, про RAID-контроллеры | ||
- | * | + | * Сначала контроллеры были аппаратные, они делали вид, что к ним подключён одни диск, на самом деле несксколько, платы стоят дорого, поскольку делаются для дорогих серверов |
- | + | * В какой-то момент решили делать программный RAID, понятно что он будет отнимать ресурсы системы, работать медленнее, зато это замечательно работает. | |
- | + | * Лет 5---10 назад стало популярно в очень недорогие материнские платы встраивать нечто, что производители называют аппаратным рейдом Но по сути оно было только на уровне биоса, дальше на уровне ос оно оперируется драйвером. Оно отличается в худшую сторону. Если вышла из строя аппаратный raid, то нужно купить точно такой же адаптер, но он стоит дорогих денег, давно не выпускается и так далее. Но в случае рейда 0 и 1 помогает dd и скрипт на шелле, достаточно знать, какого размера блоки и какой диск первый-второй. Понятно, что аппаратные работают быстрее | |
- | Сначала контроллеры были аппаратные, | + | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | Понятно, что | + | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
* В СХД есть обычно свои средства | * В СХД есть обычно свои средства | ||
Строка 193: | Строка 134: | ||
Ещё на умных, хороших аппаратный рейдах есть собственный кэш, собственная память для того, чтобы подобрать правильную посл. записи на диск. Во-вторых, там есть замечательное свойство, что после того, как данные сохранили в кэш, можно сказать ОС, что данные сохранены. В этом случае может быть проблема, что делать, если питание отрубится. Обычно, для этого есть батарейка, которая позволяет сохранить кэш.. | Ещё на умных, хороших аппаратный рейдах есть собственный кэш, собственная память для того, чтобы подобрать правильную посл. записи на диск. Во-вторых, там есть замечательное свойство, что после того, как данные сохранили в кэш, можно сказать ОС, что данные сохранены. В этом случае может быть проблема, что делать, если питание отрубится. Обычно, для этого есть батарейка, которая позволяет сохранить кэш.. | ||
- | + | LVM | |
* Не можем спланировать, сколько потребуется места через 3 года | * Не можем спланировать, сколько потребуется места через 3 года | ||
* Хотим home 300ГБ, а у нас два диска по 200 | * Хотим home 300ГБ, а у нас два диска по 200 | ||
Строка 219: | Строка 160: | ||
* ivlad: ещё более интересная ситуация, когда надо сделать снэпшот сырого диска. Производители ... публикуют интерфейсы, которые позволяют делать снэпшот тейблспейса, и оракл дальше пишет в лог(?) ... но это решение на уровне приложения | * ivlad: ещё более интересная ситуация, когда надо сделать снэпшот сырого диска. Производители ... публикуют интерфейсы, которые позволяют делать снэпшот тейблспейса, и оракл дальше пишет в лог(?) ... но это решение на уровне приложения | ||
- | + | СХД | |
- | * DAS --- | + | * DAS --- dirrect attached storage --- ящик с дисками. Хранилище, которое подкл. непосредственно. DAS работает по принципу одного потребителя данных, и в случае децентрализации потребителя этого недостаточно для решения этого придумали |
* NAS --- ящик, к которому подключаются по сети и работает с ним | * NAS --- ящик, к которому подключаются по сети и работает с ним | ||
- | * SAN --- | + | * SAN --- ... |
DAS | DAS | ||
Строка 320: | Строка 261: | ||
Вообще говоря, избыточность может быть любой, m+n, что позволяет пережить m отказов. Но по скорости он сосёт, псокольку уже дя R6 нужно собирать квадрат, и при случайной записи надо собрать квадрат, и скорость проседает, что можно решать кэшом. Но большие кэши это техн. сложно. | Вообще говоря, избыточность может быть любой, m+n, что позволяет пережить m отказов. Но по скорости он сосёт, псокольку уже дя R6 нужно собирать квадрат, и при случайной записи надо собрать квадрат, и скорость проседает, что можно решать кэшом. Но большие кэши это техн. сложно. | ||
- | Компания | + | Компания ... предложила следующее: давайте делтаь случайную запись, но писать на диск последовательно. Что мы получили: мы получили запись быструю (потому что пишем только full-... stripe) и это очень хорошо. Но возникает проблема фрагментации. Мало того, что надо делать мэппинг, но понятно, что ни о какм префетче можно не говорить, всё врея надо перепозиц. головку. Решение тут только одно --- делать периодич. дефрагментацию. Решение делать дефр. online эта такая инж. задача, вполне себе решаемая. Теоретически эта задача разрешимая, практически её пока не решили. Есть офлайновая дефрагментация. |
- | Поэтому среди unix-гиков он очень популярен. У него хорошаяреализация nfs, он быстрее писюка. С другой стороны, у него гламурная командная строчка, и он выгядит довольно прикольно. Из success-story --- Я.Деньги | + | Поэтому среди unix-гиков он очень популярен. У него хорошаяреализация nfs, он быстрее писюка. С другой стороны, у него гламурная командная строчка, и он выгядит довольно прикольно. Из success-story --- Я.Деньги работают на них. У EMC работает на них биллинг у МТС. |
У R6 есть разные подсчёты второй parity. | У R6 есть разные подсчёты второй parity. | ||
Строка 329: | Строка 270: | ||
** Уже сейчас можно купить Symmetrix с SSD | ** Уже сейчас можно купить Symmetrix с SSD | ||
** Плюсы и минусы SSD: операции записи ползут. | ** Плюсы и минусы SSD: операции записи ползут. | ||
- | ** Надо | + | ** Надо прапильно понимать, где они нужны: если позиционирование игрвет роль, то оно актуально, там будет большой прирост. Там, где делаешь потоковую запись, то тут смысла нет. |
** В чём отличия при исп.: не сбрасывают кэш, поск. отсут. статистика по отказам | ** В чём отличия при исп.: не сбрасывают кэш, поск. отсут. статистика по отказам | ||