Удаление raid 1 linux

Обновлено: 06.07.2024

RAID означает избыточный массив независимых дисков. Он был в основном разработан, чтобы позволить объединить множество дисков (таких как HDD, SSD и NVMe) в массив для реализации избыточности. Этот массив устройств представляется компьютеру как единый логический накопитель или диск. Избыточность не может быть достигнута с помощью одного огромного диска, подключенного к вашему проекту, потому что восстановление данных будет практически невозможно в случае аварии. В RAID, даже если массив состоит из нескольких дисков, компьютер « видит » его как один диск или единое логическое устройство хранения, что довольно удивительно.

Определение терминов

Используя такие методы, как чередование дисков (уровень RAID 0), зеркалирование дисков (уровень RAID 1) и чередование дисков с контролем четности (уровни RAID 5, 4 и 6), RAID может обеспечить избыточность, более низкую задержку, увеличенную пропускную способность и максимальную производительность. возможность восстановления после сбоев жесткого диска.

Основные причины, по которым вам следует рассмотреть возможность развертывания RAID в своих проектах, включают следующее:

  • Достижение лучших скоростей
  • Увеличивает емкость хранилища с помощью одного виртуального диска
  • Минимизирует потерю данных из-за отказа диска. В зависимости от типа RAID вы сможете добиться избыточности, которая впоследствии спасет вас в случае потери данных.

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

  • Переносимость массивов между машинами Linux без реконструкции
  • Реконструкция фонового массива с использованием неработающих системных ресурсов
  • Поддержка дисков с возможностью горячей замены
  • Автоматическое определение ЦП для использования некоторых функций ЦП, таких как поддержка потоковой передачи SIMD
  • Автоматическое исправление сбойных секторов на дисках в массиве
  • Регулярные проверки целостности данных RAID для обеспечения работоспособности массива.
  • Упреждающий мониторинг массивов с оповещениями по электронной почте, отправляемыми на указанный адрес электронной почты о важных событиях
  • Растровые изображения с намерением записи, которые резко увеличивают скорость событий повторной синхронизации, позволяя ядру точно знать, какие части диска необходимо повторно синхронизировать, вместо повторной синхронизации всего массива

Настройка RAID на CentOS 8

Сделав краткое введение, давайте рассмотрим суть вопроса и настроим различные уровни RAID в CentOS 8. Прежде чем продолжить, нам понадобится инструмент mdadm, который поможет в настройке различных уровней RAID.

Настройка RAID уровня 0 в CentOS 8

Как уже упоминалось, RAID 0 обеспечивает чередование без четности и требует как минимум двух жестких дисков. Он хорошо работает, когда его скорость сравнивается с остальными, потому что он не хранит никаких данных четности и выполняет операции чтения и записи одновременно.

Посмотрим, какие диски есть на нашем сервере:

Как показано выше, к серверу подключены три необработанных диска ( sdb, sdc и sdd ). Мы начнем с очистки дисков, а затем разбиваем их на разделы, прежде чем создавать на них RAID.

Создайте по одному разделу на каждом из дисков и установите флаг RAID.

Вы должны увидеть созданные новые разделы (sdb1, sdc1, sdd1):

После того, как разделы будут готовы, перейдите к созданию устройства RAID 0. Чередование уровней аналогично RAID 0, поскольку предлагает только чередование данных.

Узнайте статус вашего RAID-устройства, используя любую из следующих команд:

Если все выглядит красиво, создайте файловую систему по вашему выбору на новом устройстве RAID.

Затем нам нужно смонтировать новое устройство в файловой системе, чтобы оно начало хранить файлы и каталоги. Создайте новую точку монтирования:

Настроить монтирование в /etc/fstab:

Если вы не уверены в типе файловой системы, введите команду ниже и измените ext4 на ТИП, который будет показан.

Убедитесь, что он может быть установлен правильно:

Настройка RAID уровня 1 в CentOS 8

RAID 1 обеспечивает зеркалирование дисков или четность без чередования. Он просто записывает все данные на два диска, и поэтому, если один диск выходит из строя или извлекается, все данные будут доступны на другом диске. Поскольку он записывает на два диска, RAID 1 требует двойных жестких дисков, так что, если вы хотите использовать 2 диска, вам придется установить 4 диска для установки.

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

Создайте по одному разделу на каждом из дисков и установите флаг RAID.

Создать устройство RAID 1:

Проверьте статус нового массива:

После этого создайте точку монтирования, в которую будет монтироваться устройство:

Снова настройте монтирование в /etc/fstab:

Убедитесь, что он может быть установлен правильно:

Настройка RAID уровня 10 в CentOS 8

RAID 10 сочетает в себе зеркалирование дисков (запись на два диска одновременно) и чередование дисков для защиты данных. При наличии как минимум 4 дисков RAID 10 распределяет данные по зеркальным парам. В этой конфигурации данные могут быть извлечены, пока работает один диск в каждой зеркальной паре.

Как и предыдущие уровни RAID, начните с очистки всех ваших сырых дисков.

Создайте по одному разделу на каждом из дисков и установите флаг RAID.

Затем создайте устройство RAID 10 и проверьте его состояние:

После настройки устройства RAID создайте файловую систему, которая вам нужна. Ниже показан пример настройки xfs.

После этого создайте точку монтирования, в которую будет монтироваться устройство:

Настроить монтирование в /etc/fstab:

Убедитесь, что он может быть установлен правильно:

Остановить и удалить массив RAID

Если вы хотите удалить устройство RAID из своей системы, просто отключите точку монтирования, остановите ее и удалите с помощью приведенных ниже команд. Не забудьте заменить /mnt/raid0 своей точкой монтирования, а /dev/md0 вашим устройством RAID.

Праздничная конечная записка

Программный RAID замечателен своей универсальностью и простотой настройки. Как вы видели, для настройки RAID требуется всего несколько команд, и ваш массив снова станет здоровым. В зависимости от потребностей бизнеса вы можете достичь высокого уровня резервного копирования, которое поможет в резервном копировании в случае аварии.

mdadm — утилита для работы с программными RAID-массивами различных уровней. В данной инструкции рассмотрим примеры ее использования.

Установка mdadm

Утилита mdadm может быть установлена одной командой.

Если используем CentOS / Red Hat:

yum install mdadm

Если используем Ubuntu / Debian:

apt-get install mdadm

Сборка RAID

Перед сборкой, стоит подготовить наши носители. Затем можно приступать к созданию рейд-массива.

Подготовка носителей

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

mdadm --zero-superblock --force /dev/sd

* в данном примере мы зануляем суперблоки для дисков sdb и sdc.

Если мы получили ответ:

mdadm: Unrecognised md component device - /dev/sdb
mdadm: Unrecognised md component device - /dev/sdc

. то значит, что диски не использовались ранее для RAID. Просто продолжаем настройку.

Далее нужно удалить старые метаданные и подпись на дисках:

wipefs --all --force /dev/sd

Создание рейда

Для сборки избыточного массива применяем следующую команду:

mdadm --create --verbose /dev/md0 -l 1 -n 2 /dev/sd

  • /dev/md0 — устройство RAID, которое появится после сборки;
  • -l 1 — уровень RAID;
  • -n 2 — количество дисков, из которых собирается массив;
  • /dev/sd — сборка выполняется из дисков sdb и sdc.

Мы должны увидеть что-то на подобие:

Также система задаст контрольный вопрос, хотим ли мы продолжить и создать RAID — нужно ответить y:

Continue creating array? y

Мы увидим что-то на подобие:

mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.

. и находим информацию о том, что у наших дисков sdb и sdc появился раздел md0, например:

.
sdb 8:16 0 2G 0 disk
??md0 9:0 0 2G 0 raid1
sdc 8:32 0 2G 0 disk
??md0 9:0 0 2G 0 raid1
.

* в примере мы видим собранный raid1 из дисков sdb и sdc.

Создание файла mdadm.conf

В файле mdadm.conf находится информация о RAID-массивах и компонентах, которые в них входят. Для его создания выполняем следующие команды:

echo "DEVICE partitions" > /etc/mdadm/mdadm.conf

DEVICE partitions
ARRAY /dev/md0 level=raid1 num-devices=2 metadata=1.2 name=proxy.dmosk.local:0 UUID=411f9848:0fae25f9:85736344:ff18e41d

* в данном примере хранится информация о массиве /dev/md0 — его уровень 1, он собирается из 2-х дисков.

Создание файловой системы и монтирование массива

Создание файловой системы для массива выполняется также, как для раздела:

* данной командой мы создаем на md0 файловую систему ext4.

Примонтировать раздел можно командой:

mount /dev/md0 /mnt

* в данном случае мы примонтировали наш массив в каталог /mnt.

Чтобы данный раздел также монтировался при загрузке системы, добавляем в fstab следующее:

/dev/md0 /mnt ext4 defaults 1 2

Для проверки правильности fstab, вводим:

Мы должны увидеть примонтированный раздел md, например:

/dev/md0 990M 2,6M 921M 1% /mnt

Информация о RAID

Посмотреть состояние всех RAID можно командой:

В ответ мы получим что-то на подобие:

md0 : active raid1 sdc[1] sdb[0]
1046528 blocks super 1.2 [2/2] [UU]

* где md0 — имя RAID устройства; raid1 sdc[1] sdb[0] — уровень избыточности и из каких дисков собран; 1046528 blocks — размер массива; [2/2] [UU] — количество юнитов, которые на данный момент используются.
** мы можем увидеть строку md0 : active(auto-read-only) — это означает, что после монтирования массива, он не использовался для записи.

Подробную информацию о конкретном массиве можно посмотреть командой:

* где /dev/md0 — имя RAID устройства.

Version : 1.2
Creation Time : Wed Mar 6 09:41:06 2019
Raid Level : raid1
Array Size : 1046528 (1022.00 MiB 1071.64 MB)
Used Dev Size : 1046528 (1022.00 MiB 1071.64 MB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent

Update Time : Wed Mar 6 09:41:26 2019
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0

Consistency Policy : resync

Name : proxy.dmosk.local:0 (local to host proxy.dmosk.local)
UUID : 304ad447:a04cda4a:90457d04:d9a4e884
Events : 17

Number Major Minor RaidDevice State
0 8 16 0 active sync /dev/sdb
1 8 32 1 active sync /dev/sdc

  • Version — версия метаданных.
  • Creation Time — дата в время создания массива.
  • Raid Level — уровень RAID.
  • Array Size — объем дискового пространства для RAID.
  • Used Dev Size — используемый объем для устройств. Для каждого уровня будет индивидуальный расчет: RAID1 — равен половине общего размера дисков, RAID5 — равен размеру, используемому для контроля четности.
  • Raid Devices — количество используемых устройств для RAID.
  • Total Devices — количество добавленных в RAID устройств.
  • Update Time — дата и время последнего изменения массива.
  • State — текущее состояние. clean — все в порядке.
  • Active Devices — количество работающих в массиве устройств.
  • Working Devices — количество добавленных в массив устройств в рабочем состоянии.
  • Failed Devices — количество сбойных устройств.
  • Spare Devices — количество запасных устройств.
  • Consistency Policy — политика согласованности активного массива (при неожиданном сбое). По умолчанию используется resync — полная ресинхронизация после восстановления. Также могут быть bitmap, journal, ppl.
  • Name — имя компьютера.
  • UUID — идентификатор для массива.
  • Events — количество событий обновления.
  • Chunk Size (для RAID5) — размер блока в килобайтах, который пишется на разные диски.

Подробнее про каждый параметр можно прочитать в мануале для mdadm:

Также, информацию о разделах и дисковом пространстве массива можно посмотреть командой fdisk:

Проверка целостности

Для проверки целостности вводим:

Результат проверки смотрим командой:

* если команда возвращает 0, то с массивом все в порядке.

Восстановление RAID

Рассмотрим два варианта восстановлении массива.

Замена диска

В случае выхода из строя одного из дисков массива, команда cat /proc/mdstat покажет следующее:

Personalities : [raid1]
md0 : active raid1 sdb[0]
1046528 blocks super 1.2 [2/1] [U_]

* о наличии проблемы нам говорит нижнее подчеркивание вместо U — [U_] вместо [UU].

.
Update Time : Thu Mar 7 20:20:40 2019
State : clean, degraded
.

* статус degraded говорит о проблемах с RAID.

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

mdadm /dev/md0 --remove /dev/sdc

Теперь добавим новый:

mdadm /dev/md0 --add /dev/sde

Смотрим состояние массива:

.
Update Time : Thu Mar 7 20:57:13 2019
State : clean, degraded, recovering
.
Rebuild Status : 40% complete
.

* recovering говорит, что RAID восстанавливается; Rebuild Status — текущее состояние восстановления массива (в данном примере он восстановлен на 40%).

Если синхронизация выполняется слишком медленно, можно увеличить ее скорость. Для изменения скорости синхронизации вводим:

* по умолчанию скорость speed_limit_min = 1000 Кб, speed_limit_max — 200000 Кб. Для изменения скорости, можно поменять только минимальную.

Пересборка массива

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

mdadm --assemble --scan

* данная команда сама найдет необходимую конфигурацию и восстановит RAID.

Также, мы можем указать, из каких дисков пересобрать массив:

mdadm --assemble /dev/md0 /dev/sdb /dev/sdc

Запасной диск (Hot Spare)

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

Диском Hot Spare станет тот, который просто будет добавлен к массиву:

mdadm /dev/md0 --add /dev/sdd

Информация о массиве изменится, например:

.
Number Major Minor RaidDevice State
0 8 16 0 active sync /dev/sdb
2 8 48 1 active sync /dev/sdc

3 8 32 - spare /dev/sdd

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

mdadm /dev/md0 --fail /dev/sdb

И смотрим состояние:

.
Rebuild Status : 37% complete
.
Number Major Minor RaidDevice State
3 8 32 0 spare rebuilding /dev/sdd
2 8 48 1 active sync /dev/sdc

0 8 16 - faulty /dev/sdb
.

* как видим, начинается ребилд. На замену вышедшему из строя sdb встал hot-spare sdd.

Добавить диск к массиву

В данном примере рассмотрим вариант добавления активного диска к RAID, который будет использоваться для работы, а не в качестве запасного.

Добавляем диск к массиву:

mdadm /dev/md0 --add /dev/sde

4 8 16 - spare /dev/sde

Теперь расширяем RAID:

mdadm -G /dev/md0 --raid-devices=3

* в данном примере подразумевается, что у нас RAID 1 и мы добавили к нему 3-й диск.

Удаление массива

При удалении массива внимателнее смотрите на имена массива и дисков и подставляйте свои значения.

Если нам нужно полностью разобрать RAID, сначала размонтируем и остановим его:

* где /mnt — каталог монтирования нашего RAID.

* где /dev/md0 — массив, который мы хотим разобрать.
* если мы получим ошибку mdadm: fail to stop array /dev/md0: Device or resource busy, с помощью команды lsof -f -- /dev/md0 смотрим процессы, которые используют раздел и останавливаем их.

Затем очищаем суперблоки на всех дисках, из которых он был собран:

mdadm --zero-superblock /dev/sdb

mdadm --zero-superblock /dev/sdc

mdadm --zero-superblock /dev/sdd

* где диски /dev/sdb, /dev/sdc, /dev/sdd были частью массива md0.

Как удалить RAID-массив Linux Software RAID (mdraid)


Перед тем, как удалять RAID-массив mdraid желательно остановить все службы и приложения использующие RAID-массив, после чего отмонтировать все имеющиеся подключения к RAID-массиву, например:

Также не забываем удалить упоминание об удаляемом RAID-массиве из всех конфигурационных файлов, где он упоминается. Например, стоит проверить конфигурационный файл fstab ( /etc/fstab )

Чтобы в дальнейшем система не пыталась автоматически собрать массив (например после перезагрузки) из дисков, которые участвовали в RAID-массиве, необходимо очистить супер-блоки на этих дисках, например:

В завершении, убираем ссылки на разобранный RAID-массив в /etc/mdadm/mdadm.conf (в Debian) или в /etc/mdadm.conf (в CentOS), если они делались там ранее.

Проверено на следующих конфигурациях:

Версия ОС Версия mdadm
Debian GNU/Linux 9.4 (Stretch) x86_64 v3.4 - 28th January 2016
CentOS Linux 7.5.1804 v4.0 - 2017-01-09


Автор первичной редакции:
Алексей Максимов
Время публикации: 19.06.2018 09:22

Здравствуйте.
столкнулся с тем, что в gnome disk вырезали работу с райд.
теперь мои 3 сервера с убунту под угрозой, работать с мдадм я не планирую. проще переделать на виндовс. хоть для сервера c openvpn с 2 дисками под систему c райд 1 и не особо напряжно, но все же, но что делать с сервером где бекапы храняться, с его 9 дисками?
Не подскажите есть какой нибудь gui для работы с райд в линуксе?
рассмотрю все варианты, ну кроме самых экзотических. не только же убунту использовать можно, но и опен сусе например.

"gui в линуксе". "3 сервера с убунту". Очень советую без gui.

date

18.12.2019

directory

CentOS, Linux

comments

комментариев 9

mdadm – утилита для работы с программными RAID-массивами в Linux. В статье мы рассмотрим, как работать с утилитой mdadm (multiple disks admin) для создания массива, добавления дисков, управления дисками, добавление hot-spare и много другой полезной информации.

Чтобы установить утилиту mdadm, запустите команду установки:

  • Для Centos/Red Hat используется yum/dnf: yum install mdadm
  • Для Ubuntu/Debian: apt-get install mdadm

В резульатте в системе будет установлена сама утилита mdadm и необходимые библиотеки:

Создание RAID из 2-х дисков

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

mdadm --zero-superblock - очистка дисков передо добавлением в raid

У меня два есть два чистых диска vdb и vdc.

Данный листинг означает, что ни один из дисков ранее не был добавлен в массив.

Чтобы собрать программный RAID1 из двух дисков в устройстве /dev/md0, используйтк команду:

Если нужно создать RAID0 в режиме страйп (stripe) для увеличения скорости чтения/записи данных за счет распараллеливания команд между несколькими физическими дисками, используйте команду:

RAID 5 из трех или более дисков:

После запуска команды, нужно подтвердить действия и массив будет создан:

mdadm - создать raid1 из 2-х дисков в Linux

Теперь при просмотре информации о дисках, мы видим наш массив:

Создание файловой системы на RAID, монтирование

Чтобы создать файловую систему ext4 на нашем RAID1 массиве из двух дисков, используйте команду:

создать файловую систему ext4 на raid томе

Создадим директорию backup и примонтируем к ней RAID устройство:

Массив смонтировался без ошибок. Чтобы не монтировать устройство каждый раз вручную, внесем изменения в fstab:

fstab - авто-монтирование raid устройства в каталог

Просмотр состояния, проверка целостности RAID массива

Чтобы проверить целостность данных в массиве, используйте команду:

После чего, нужно посмотреть вывод файла:

Если в результате вы получаете 0, то с вашим массивом все в порядке:

проверка целостности raid в linux

Чтобы остановить проверку, используйте команду:

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

В листинге команды, видим информацию о нашем ранее созданном raid.

Более подробную информацию о конкретном raid-массиве, можно посмотреть командой:

mdadm -D /dev/md0 - получить информацию о raid массиве в linux

Разберем основные пункты листинга команды:

Краткую информацию можно посмотреть с помощью утилиты fdisk:

Восстановление RAID при сбое, замена диска

Если у вас вышел из строя или повредился один из дисков в RAID-массиве, его можно заменить другим. Для начала определим, поврежден ли диск и какой диск нам следует менять.

Из листинга команды, вы видим, что только один диск активен. Так же о проблеме говорит [U_]. Когда оба диска рабочие, вывод будет [UU].

Подробная информация о RAID-массиве также показывает, что естт проблемы:

State : clean, degraded – данная строка указывает на то, что диск в raid-массиве поврежден.

В нашем случае нужно заменить неисправный диск /dev/vdc. Для восстановления массива, нужно удалить нерабочий диск и добавить новый.

Удаляем неиспраный диск:

Добавляем в массив новый диск :

Восстановление диска запустится автоматически после добавления нового диска:

rebuild Status : 69% complete — показывает текущее состояние восстановления массива.

spare rebuilding /dev/vdd — показывает какой диск добавляется к массиву.

После восстановления массива, листинг по дискам выглядит так:

Добавление и удаление дисков в RAID массив на Linux

Чтобы разобрать ранее созданный массив, нужно отмонтировать его :

И выполнить команду:

После разбора массива, он не должен определяться как устройство:

Чтобы собрать массив, который мы ранее разобрали вручную, запустите команду:

mdadm --assemble —scan пересборка массива

Данная команда просканирует диски из разобранного или развалившегося RAID массива и по метаданным попробует собрать из них RAID.

Если вам нужно удалить рабочий диск из массива и заменить его на другой, нужно для начала пометить рабочий диск как нерабочий:

После чего диск можно будет удалить командой::

Добавляется новый диск, так же как и в случае с нерабочим диском:

Добавление Hot-Spare диска в RAID массив

Вы можете добавит в массив hot-spare диск для горячей замены при выходе из строя одного из активных дисков. Добавьте свободный диск в нужный массив:

mdadm - добавить hot-spare диск в raid массив

После чего при проверке статуса массива, будет видно, что началась пересборка массива:

mdadm - faulty - сбойный диск

Диск /dev/vdb помечен как нерабочий, а hot-spare диск стал одним из активных дисков RAID и запустился процесс восстановления.

Чтобы добавить дополнительный рабочий диск в RAID, нужно выполнить два шага.

Добавить пустой диск массиву:

Теперь данный диск будет отображаться как hot-spare, чтобы сделать его рабочим, расширим raid-массив:

После чего запустится процесс пересборки массива:

mdadm - програмный raid linux spare rebuilding

После выполнения пересборки, все диски стали активны:

Удаление массива

Если вы хотите безвозвратно удалить raid-массив, используйте следующую схему:

После чего очищаем все суперблоки на дисках, из которых он был собран:

Mdmonitor: Мониторинг состояния RAID и email оповещения

Для мониторинга состояния RAID массива можно использовать службу mdmonitor. Сначала нужно создать файл /etc/mdadm.conf с конфигурацией текущего массива:

Конфигурационный файл mdadm.conf не создается автоматически. Его нужно создавать и актуализировать вручную.

В конце файла /etc/mdadm.conf добавьте email адрес администратора, на который нужно слать оповещения о проблемах с RAID:

Останолось перезапустить службу mdmonitor через systemctl:

После этого система будет оповещать вас по email об ошибках в mdadm и неисправных дисках.

RAID массив в состоянии inactive

При сбоях оборудования или аварийного выключения по питанию, массив может перейти в состояние inactive. Все диски помечаются как неактивные, но ошибок на дисках нет.

В этом случае нужно остановить массив командой:

И пересобрать его:

Если массив прописан в /etc/fstab, нужно перемонтировать его командой:

Утилита mdadm упрощает работу с raid-массивами в Linux. В данной статье я описал основные моменты работы с данной утилитой, а также затронул самые частые вопросы, которые возникают при работе с raid-массивами через утилиту mdadm.

Читайте также: