Raid 10 из 4 дисков как сделать

Все про Raid (рейд) 10 уровня

Приветствую всех, уважаемые читатели блога Pc-information-guide.ru! Ранее, я уже публиковал статью о видах raid массивов, очень рекомендую почитать. Там я только вкратце рассказал о том, что такое рейд массив десятого уровня, или «1+0» — как его еще называют. В этой статье будет подробный рассказ о всех преимуществах и недостатках такого вида Raid массива, а также о его сравнении с пятым рейдом.

Как известно, Raid 10 вобрал в себя все хорошее из Raid 0 и Raid 1: увеличенную скорость доступа и повышенную надежность данных — соответственно. Рейд 10 представляет собой некую «полоску» зеркал, состоящих из пар жестких дисков, объединенных в рейд первого уровня. Иными словами, диски вложенного массива соединены парами в «зеркальный» рейд первого уровня, а эти вложенные массивы, в свою очередь — трансформируются в общий массив нулевого уровня, используя чередование данных.

Описание особенностей массива raid 10 сводится к следующему:

  • если любой один диск из вложенных массивов raid 1 поломается — потери данных не произойдет. То есть, если «внутри» десятого raid находится всего четыре диска, что являет собой минимально допустимое количество, тогда возможен безболезненный выход из строя аж двух дисков одновременно;
  • следующая особенность (скорее недостаток) — невозможность замены поврежденных накопителей, если конечно массив не оснащен технологией «hot spare»;
  • если ориентироваться на высказывания производителей устройств и многочисленные тесты, то получается, что именно raid «1+0» обеспечивает наилучшую пропускную способность по сравнению с другими видами, кроме нулевого raid, конечно же.

Количество дисков

Отвечая на вопрос — сколько же дисков требуется для рейд 10, скажу, что для такого массива необходимо четное их количество. Причем, минимально допустимое количество винчестеров составляет 4, а максимальное 16. Также, бытует мнение, что raid «1+0» (он же 10) и «0+1» чем-то различаются. Это правда, но различие состоит только в последовательности соединения массивов.

Последняя цифра обозначает тип массива самого верхнего уровня. Например, raid «0+1» обозначает некую зеркальную систему полос, внутри которой два нулевых рейда (общее количество: 4 жестких диска) объединяются в один рейд 1 — это как пример, «нулевых» рейд массивов тут может быть и больше. Причем, снаружи визуально эти два подвида рейд 10 ничем не отличаются. И чисто теоретически они имеют равную степень устойчивости к сбоям.

На практике же, большинство производителей сейчас используют Raid 1+0 вместо Raid 0+1, объясняя это большей устойчивостью первого варианта к ошибкам и сбоям.

Повторюсь, главным недостатком raid 10 остается — необходимость включения в массив дисков «горячего резерва». Расчет примерно следующий: на 5 рабочих накопителей должен быть один резервный. Теперь пару слов про емкость дисков. Особенность емкости рейд 1 заключается в том, что вам всегда доступна лишь половина пространства винчестеров от их общего объема. В RAIDе 10 из 4 дисков общим объемом 4 Терабайта для записи будут доступны всего 2 Тб. Вообще, легко подсчитать доступный объем можно по формуле: F*G/2, F означает — количество дисков в массиве, а G — их емкость.

Сравнение raid 10 vs raid 5

Говоря о выборе между «десятым» raid и любым другим, на ум обычно приходит мысль о рейд 5. Raid 5 похож на первый по своему назначению, с той лишь разницей, что для него требуется минимум 3 накопителя. Причем один из них не будет доступен в качестве места для записи данных, на нем будет храниться лишь служебная информация.

Пятый рейд способен пережить выпадение (поломку) только одного жесткого, поломка второго повлечет за собой потерю всех данных. Однако, рейд пятого уровня — хороший и дешевый способ продлить жизнь накопителям и снизить вероятность их поломки. Для того, чтобы наше сравнение было эффективным и наглядным, попробую упорядочить преимущества и недостатки пятого рейда перед десятым:

  1. Емкость массива raid 5 равна общему объему дисков за вычетом объема одного диска. В то время как в рейд 10, по факту, доступна лишь половина объема накопителей.
  2. При операциях чтения/записи взаимодействие с потоками данных может вестись параллельно с нескольких дисков. Поэтому скорость записи или чтения возрастает, по сравнению с обычным жестким диском. Но, без хорошего рейд-контроллера скорость будет не сильно высокой.
  3. Производительность рейд 5 в операциях случайного чтения/записи блоков ниже на 10–25% в сравнении с десятым. При поломке одного из дисков в пятом рейде весь массив переходит в критический режим — все операции записи и чтения сопровождаются дополнительными манипуляциями, производительность при этом резко падает.

Итак, что же мы имеем в итоге: рейд 10 имеет лучшую отказоустойчивость и скорость, по сравнению с рейд 5. Однако, собрать такой массив из дисков будет по карману далеко не каждому. Рейд 5 — некое промежуточное решение между нулевым массивом и зеркалом (рейд 1). О том, как сделать raid 10 из четырех дисков будет рассказано чуть ниже, хотя я уже затрагивал «вскользь» эту тему в статье, ссылка на которую указана вверху. Конечно же, для этой цели лучше использовать аппаратный уровень — нужен специальный контроллер, но хорошее оборудование стоит дорого.

Так называемый «фейк рейд» (встроенный в материнскую плату) не отличается надежностью и быстротой, использовать не рекомендую. Лучше уж тогда организовать это все на программном уровне. Ну а сейчас, подробный пример создания массива на четырех дисках, используя рейд-контроллер. Для начала через BIOS выбираем соответствующую утилиту.

Затем, в меню утилиты выбираем пункт «инициализация драйверов».

Выделяем все наши диски.

Снова возвращаемся к главному меню утилиты и выбираем пункт «создать массив».

И на последнем шаге — указываем тип массива, его размер и другие параметры.

Читать еще:  Как сделать гирлянду из шариков

RAID для «чайников» и не только

KDV, iBase.ru, 26.11.2004, последнее обновление – 27.02.2009.

Со времени первой публикации статьи, на forum.ibase.ru в ее обсуждении появилась масса интересных сообщений. Так что после чтения статьи рекомендую обязательно просмотреть топик на форуме.

В интернете есть масса статей с описанием RAID. Например, эта описывает все очень подробно. Но как обычно, читать все не хватает времени, поэтому надо что-нибудь коротенькое для понимания – а надо оно или нет, и что лучше использовать применительно к работе с СУБД (InterBase, Firebird или что то иное – на самом деле все равно). Перед вашими глазами – именно такой материал.

Примечание. Сейчас есть хорошая статья о RAID в Википедии.

В первом приближении RAID это объединение дисков в один массив. SATA, SAS, SCSI, SSD – неважно. Более того, практически каждая нормальная материнская плата сейчас поддерживает возможность организации SATA RAID. Пройдемся по списку, какие бывают RAID и зачем они. (Хотел бы сразу заметить, что в RAID нужно объединять одинаковые диски. Объединение дисков от разных производителей, от одного но разных типов, или разных размеров – это баловство для человека, сидящего на домашнем компьютере).

RAID 0 (Stripe)

Грубо говоря, это последовательное объединение двух (или более) физических дисков в один «физический» диск. Годится разве что для организации огромных дисковых пространств, например, для тех, кто работает с редактированием видео. Базы данных на таких дисках держать нет смысла – в самом деле, если даже у вас база данных имеет размер 50 гигабайт, то почему вы купили два диска размером по 40 гигабайт, а не 1 на 80 гигабайт? Хуже всего то, что в RAID 0 любой отказ одного из дисков ведет к полной неработоспособности такого RAID, потому что данные записываются поочередно на оба диска, и соответственно, RAID 0 не имеет средств для восстановления в случае сбоев.

Конечно, RAID 0 дает ускорение в работе из-за чередования чтения/записи.

RAID 0 часто используют для размещения временных файлов.

RAID 1 (Mirror)

Зеркалирование дисков. Если Shadow в IB/FB это программное зеркалирование (см. Operations Guide.pdf), то RAID 1 – аппаратное зеркалирование, и ничего более. Упаси вас от использования программного зеркалирования средствами ОС или сторонним ПО. Надо или «железный» RAID 1, или shadow.

При сбое тщательно проверяйте, какой именно диск сбойнул. Самый частый случай погибания данных на RAID 1 – это неверные действия при восстановлении (в качестве «целого» указан не тот диск).

Насчет производительности – по записи выигрыш 0, по чтению – возможно до 1.5 раз, т. к. чтение может производиться «параллельно» (поочередно с разных дисков) . Для баз данных ускорение мало, в то время как при параллельном обращении к разным (!) частям (файлам) диска ускорение будет абсолютно точно.

RAID 1+0

RAID 2-3-4

RAID 5

Для него нужно минимально 3 диска. Данные четности распределяются по всем дискам массива

Обычно говорится, что «RAID5 использует независимый доступ к дискам, так что запросы к разным дискам могут выполняться параллельно». Следует иметь в виду, что речь идет, конечно, о параллельных запросах на ввод-вывод. Если такие запросы идут последовательно (в SuperServer), то конечно, эффекта распараллеливания доступа на RAID 5 вы не получите. Разумеется, RAID5 даст прирост производительности, если с массивом будут работать операционная система и другие приложения (например, на нем будет находиться виртуальная память, TEMP и т. п.).

Вообще RAID 5 раньше был наиболее часто используемым массивом дисков для работы с СУБД. Сейчас такой массив можно организовать и на SATA дисках, причем он получится существенно дешевле, чем на SCSI. Цены и контроллеры вы можете посмотреть в статьях

  • http://old.computerra.ru/2004/540/204913/
  • http://www.thg.ru/storage/20040625/index.html

Причем, следует обратить внимание на объем покупаемых дисков – например, в одной из упомянутых статей RAID5 собирается из 4-х дисков объемом 34 гиг, при этом объем «диска» получается 103 гигабайта.

Объем дискового массива RAID5 расчитывается по формуле (n-1)*hddsize, где n – число дисков в массиве, а hddsize – размер одного диска. Например, для массива из 4-х дисков по 80 гигабайт общий объем будет 240 гигабайт.

Есть интересное мнение по поводу «непригодности» RAID5 для баз данных. Как минимум его можно рассматривать с той точки зрения, что для получения хорошей производительности RAID5 необходимо использовать специализированный контроллер, а не то, что есть по умолчанию на материнской плате.

RAID 10, 50

Дальше идут уже комбинации из перечисленных вариантов. Например, RAID 10 это RAID 0 + RAID 1. RAID 50 – это RAID 5 + RAID 0.

Интересно, что комбинация RAID 0+1 в плане надежности оказывается хуже, чем RAID5. В копилке службы ремонта БД есть случай сбоя одного диска в системе RAID0 (3 диска) + RAID1 (еще 3 таких же диска). При этом RAID1 не смог «поднять» резервный диск. База оказалась испорченной без шансов на ремонт.

Для RAID 0+1 требуется 4 диска, а для RAID 5 – 3. Подумайте об этом.

RAID 6

В отличие от RAID 5, который использует четность для защиты данных от одиночных неисправностей, в RAID 6 та же четность используется для защиты от двойных неисправностей. Соответственно, процессор более мощный, чем в RAID 5, и дисков требуется уже не 3, а минимум 5 (три диска данных и 2 диска контроля четности). Причем, количество дисков в raid6 не имеет такой гибкости, как в raid 5, и должно быть равно простому числу (5, 7, 11, 13 и т. д.)

Допустим одновременный сбой двух дисков, правда, такой случай является весьма редким.

По производительности RAID 6 я данных не видел (не искал), но вполне может быть, что из-за избыточного контроля производительность может быть на уровне RAID 5.

Rebuild time

У любого массива RAID, который остается работоспособным при сбое одного диска, существует такое понятие, как rebuild time. Разумеется, когда вы заменили сдохший диск на новый, контроллер должен организовать функционирование нового диска в массиве, и на это потребуется определенное время.

Во время «подключения» нового диска, например, для RAID 5, контроллер может допускать работу с массивом. Но скорость работы массива в этом случае будет весьма низкой, как минимум потому, что даже при «линейном» наполнении нового диска информацией запись на него будет «отвлекать» контроллер и головки диска на операции синхронизации с остальными дисками массива.

Время восстановления функционирования массива в нормальном режиме напрямую зависит от объема дисков. Например, Sun StorEdge 3510 FC Array при размере массива 2 терабайта в монопольном режиме делает rebuild в течение 4.5 часов (при цене железки около $40000). Поэтому, при организации массива и планировании восстановления при сбое нужно в первую очередь думать именно о rebuild time. Если ваша база данных и бэкапы занимают не более 50 гигабайт, и рост в год составляет 1-2 гигабайта, то вряд ли имеет смысл собирать массив из 500-гигабайтных дисков. Достаточно будет и 250-гигабайтных, при этом даже для raid5 это будет минимум 500 гигабайт места для размещения не только базы данных, но и фильмов. Зато rebuild time для 250 гигабайтных дисков будет примерно в 2 раза меньше, чем для 500 гигабайтных.

Читать еще:  Блины из печени говяжьей сделать как торт

Резюме

Получается, что самым осмысленным является использование либо RAID 1, либо RAID 5. Однако, самая частая ошибка, которую делают практически все – это использование RAID «подо все». То есть, ставят RAID, на него наваливают все что есть, и . получают в лучшем случае надежность, но никак не улучшение производительности.

Еще часто не включают write cache, в результате чего запись на raid происходит медленнее, чем на обычный одиночный диск. Дело в том, что у большинства контроллеров эта опция по умолчанию выключена, т.к. считается, что для ее включения желательно наличие как минимум батарейки на raid-контроллере, а также наличие UPS.

Текст
В старой статье hddspeed.htmLINK (и в doc_calford_1.htmLINK) показано, как можно получить существенное увеличение производительности путем использования нескольких физических дисков, даже для IDE. Соответственно, если вы организуете RAID – положите на него базу, а остальное (temp, OS, виртуалка) делайте на других винчестерах. Ведь все равно, RAID сам по себе является одним «диском», пусть даже и более надежным и быстродействующим.
признан устаревшим. Все вышеупомянутое вполне имеет право на существование на RAID 5. Однако перед таким размещением необходимо выяснить – каким образом можно делать backup/restore операционной системы, и сколько по времени это будет занимать, сколько времени займет восстановление «умершего» диска, есть ли (будет ли) под рукой диск для замены «умершего» и так далее, т. е. надо будет заранее знать ответы на самые элементарные вопросы на случай сбоя системы.

Я все-таки советую операционную систему держать на отдельном SATA-диске, или если хотите, на двух SATA-дисках, связанных в RAID 1. В любом случае, располагая операционную систему на RAID, вы должны спланировать ваши действия, если вдруг прекратит работать материнская плата – иногда перенос дисков raid-массива на другую материнскую плату (чипсет, raid-контроллер) невозможен из-за несовместимости умолчательных параметров raid.

Размещение базы, shadow и backup

Несмотря на все преимущества RAID, категорически не рекомендуется, например, делать backup на этот же самый логический диск. Мало того что это плохо влияет на производительность, но еще и может привести к проблемам с отсутствием свободного места (на больших БД) – ведь в зависимости от данных файл backup может быть эквивалентным размеру БД, и даже больше. Делать backup на тот же физический диск – еще куда ни шло, хотя самый оптимальный вариант – backup на отдельный винчестер.

Объяснение очень простое. Backup – это чтение данных из файла БД и запись в файл бэкапа. Если физически все это происходит на одном диске (даже RAID 0 или RAID 1), то производительность будет хуже, чем если чтение производится с одного диска, а запись – на другой. Еще больше выигрыш от такого разделения – когда backup делается во время работы пользователей с БД.

То же самое в отношении shadow – нет никакого смысла класть shadow, например, на RAID 1, туда же где и база, даже на разные логические диски. При наличии shadow сервер пишет страницы данных как в файл базы так и в файл shadow. То есть, вместо одной операции записи производятся две. При разделении базы и shadow по разным физическим дискам производительность записи будет определяться самым медленным диском.

Объединение 2-х дисков в 1: настройка RAID-массива на домашнем компьютере (просто о сложном)

Доброго дня!

При подключении нескольких дисков к компьютеру (ноутбуку) — каждый из них появляется под своей буквой (C, D, E и др.) и представляет из себя отдельный независимый накопитель. Но объединив эти диски в RAID-массив — можно из двух дисков по 1 ТБ (например) получить единый накопитель на 2 ТБ (причем, с удвоенной* скоростью работы!) .

Согласитесь, звучит заманчиво?! Однако, многим пользователям слово «RAID» — либо вообще ничего не говорит, либо напоминает что-то такое отдаленное и сложное (явно-недоступное для повседневных нужд на домашнем ПК/ноутбуке). На самом же деле, все проще, чем есть. 👌 (разумеется, если мы не говорим о каких-то сложных производственных задачах, которые явно не нужны на обычном ПК)

Собственно, ниже в заметке попробую на доступном языке объяснить, как можно объединить диски в эти RAID-массивы, в чем может быть их отличие, и «что с чем едят».

Настройка RAID

Основы, какими могут быть RAID массивы (т.е. то, как будем объединять диски)

Возьмем для примера 2 диска (речь может идти о любых накопителях: HDD, SSD и пр.) . Объединить их между собой можно по двум основным схемам:

  • вариант 1 : когда их объем суммируется, и мы получаем один большой диск (т.е. в Windows и в BIOS он будет отображаться как один накопитель!). Такую схему принято называть RAID 0;
  • вариант 2 : когда эти два диска будут являться копиями друг друга (т.е. зеркальными). Так делают для повышения надежности хранения информации. Эта схема называется RAID 1.

Обратите внимание также на табличку ниже.

  1. объем дисков «складывается» в единое целое (например, при подключении двух дисков по 500 ГБ — получите 1000 ГБ);
  2. скорость работы с RAID-массивом повышается (например, при объединении 2-х дисков — последовательная скорость увел. в 1,5-2 раза!);
  3. снижается надежность: при выходе из строя любого из дисков — данные будут утеряны.
  1. данные клонируются на всех дисках в RAID массиве (т.е. если выйдет из строя один диск — копии файлов можно найти на другом);
  2. скорость работы с накопителями не изменяется (такая же как при работе с одним из дисков).

Разумеется, видов RAID-массивов гораздо больше (RAID 5, RAID 6, RAID 10 и др.), но все они представляют из себя разновидности вышеприведенных (и, как правило, в домашних условиях не используются).

Читать еще:  Майнкрафт как сделать портал в ад

Пару слов о дисках и мат. плате

Не все материнские платы поддерживают работу с дисковыми массивами RAID. И прежде, чем переходить к вопросу объединению дисков, необходимо уточнить этот момент.

Как это сделать : сначала с помощью спец. утилит (например, AIDA 64) нужно узнать точную модель материнской платы компьютера.

Далее найти спецификацию к вашей мат. плате на официальном сайте производителя и посмотреть вкладку «Хранение» (в моем примере ниже, мат. плата поддерживает RAID 0, RAID 1, RAID 10).

Спецификация материнской платы

Если ваша плата не поддерживает нужный вам вид RAID-массива, то у вас есть два варианта выхода из положения:

  1. воспользоваться программным способом поднятия RAID из-под Windows;
  2. приобрести спец. контроллер и установить его в PCI слот. Как правило, для его корректной работы необходимо также будет до-установить драйвер.

RAID-контроллер (в качестве примера)

Важная заметка : RAID-массив при форматировании логического раздела, переустановки Windows и т.д. — не разрушится. Но при замене материнской платы (при обновлении чипсета и RAID-контроллера) — есть вероятность, что вы не сможете прочитать информацию с этого RAID-массива (т.е. информация не будет недоступна. ).

Что касается дисков под RAID-массив :

  1. в общем-то, можно использовать как жесткие диски (HDD), так и твердотельные накопители (SSD);
  2. не всегда нужно брать диски одинакового объема и одной модели (хотя это очень желательно). Например, если вы хотите сделать зеркальную копию своего диска (RAID 1) — можно взять диск или равный по объему, или больше;
  3. при создании RAID-массива — в большинстве случаев, информация с дисков (участвующих в этом) будет удалена.

Пример настройки RAID 0 в BIOS

Разумеется, в одной заметке вряд ли возможно показать настройки для разных мат. плат и способы объединения в RAID (в зависимости от вашего железа могут быть некоторые особенности). В примере ниже, я рассмотрю создание RAID 0 массива с применением современной технологии Intel Rapid Storage Technology .

Важно : при этом способе информация с дисков будет удалена!

Примечание : создать RAID-массив можно и из-под Windows (например, если вы хотите в целях безопасности сделать зеркальную копию своего диска).

1) И так, первым делом необходимо подключить диски к компьютеру (ноутбуку). Здесь на этом не останавливаюсь.

2) Далее нужно зайти в BIOS и установить 2 опции:

  • параметр SATA Mode Selection перевести в режим RAID (обычно он находится в разделе «Advanced») ;
  • Boot Mode Selection перевести в UEFI (раздел «Boot») .

Затем нужно сохранить настройки (чаще всего это клавиша F10) и перезагрузить компьютер.

Настройки BIOS — RAID

3) После, следует снова зайти в BIOS и открыть вкладку Intel Rapid Storage Technology (обычно это раздел «Advanced») .

Intel Rapid Storage Technology

4) В этой вкладке должны отображаться все подключенные накопители. Для создания RAID-массива из них (не обязательно из всех) — нажмите по Create RAID Volume .

Create RAID Volume

5) Теперь нужно указать:

  1. Name — имя массива, может быть любым;
  2. Rapid Level — тип массива, в своем примере я выбрал RAID 0 (т.е. объединение 2-х дисков в 1 с целью увеличения объема и скорости работы) ;
  3. Select Disk — выбор дисков (просто нужно отметить крестиками накопители, которые участвуют в объединении).

После нажатия на кнопку Create Volume — RAID-массив будет создан, им можно будет пользоваться как обычным отдельным накопителем.

6) Если приступить к установке Windows 10 (например) — то в шаге выбора диска вы увидите обычную надпись вида «Незанятое пространство на диске» составляет столько-то. (при объединении в RAID 0 двух дисков по 1 ТБ — общий объем получится 1863 ГБ, см. скрин ниже) .

Т.е. на этом этапе можно создать логический раздел (и не один) и устанавливать систему как на обычный жесткий диск (забыв о слове RAID совсем. ) .

Незанятое пространство на диске — установка ОС Windows 10

Как создать RAID 0, RAID 1 программно (в ОС Windows 10)

Создать RAID-массив можно как с помощью средств BIOS, так и программно — при помощи инструментов в ОС Windows. Причем, такой вот программный способ не требует даже спец. материнской платы, поддерживающей работу с RAID-массивами.

Рассмотрю ниже пару конкретных примеров.

1) Покупаете и устанавливаете еще один-два диска (в зависимости от задач). Если ваша цель обезопасить свои данные (т.е. создание RAID 1) — то их объем должен быть равен (или быть больше) вашего основного накопителя;

2) Открываете управление дисками (для этого нужно: нажать Win+R, и в появившемся окне ввести команду diskmgmt.msc).

3) Теперь действия могут несколько отличаться.

Вариант 1 : допустим вы хотите объединить два новых диска в один, чтобы у вас был большой накопитель для разного рода файлов. В этом случае просто кликните правой кнопкой мышки по одному из новых дисков и выберите создание чередующегося тома (это подразумевает RAID 0). Далее укажите какие диски объединяете, файловую систему и пр.

Примечание : зеркальный том — это RAID 1.

Создать чередующийся или зеркальный том

Когда RAID-массив будет готов — в «Моем компьютере» у вас появится один логический диск, размер которого будет равен сумме объединенных дисков (в моем примере 3725,9 ГБ x 2 = 7,27 ТБ) .

Вариант 2 : если же вы беспокоитесь за сохранность своих данных — то можно подключенный к системе новый диск сделать зеркальным вашему основному диску с ОС Windows, причем эта операция будет без потери данных (прим.: RAID 1).

Для этого, когда зайдёте в управление дисками — кликните правой кнопкой мышки по тому разделу диска, для которого хотите создать копию — в появившемся меню выберите «Добавить зеркало» , и укажите какой диск будет им являться (в моем случае это диск 1 ) .

4) После Windows начнет автоматическую синхронизацию накопителей: т.е. с выбранного вами раздела все данные будут также скопированы на новый диск.

5) В общем-то, всё, RAID 1 настроен — теперь при любых изменениях файлов на основном диске с Windows — они автоматически будут синхронизированы (перенесены) на второй диск.

Вероятность одновременного выхода из строя 2-х дисков — крайне маловероятна, если только не учитывать фактор постороннего вмешательства (сильный удар, затопление, пожар и т.д.).

6) Удалить зеркало, кстати, можно также из управления дисками : пример на скрине ниже.

Источники:

Все про Raid (рейд) 10 уровня

http://www.ibase.ru/raid/

Объединение 2-х дисков в 1: настройка RAID-массива на домашнем компьютере (просто о сложном)

Ссылка на основную публикацию
Статьи на тему:

Adblock
detector