====== Работа с дисками ======
**df -h** - смонтированные разделы в системе.\\
**lsblk** - список дисков и разделов.\\
**fdisk -l** - расширенная информация о дисках и разделах.\\
**blkid** - тоже инфа по дискам
**mount** - инфа о смонтированных носителях
**cfdisk** - работа с диском, с неразмеченной областью в т.ч.\\
**du -sh** - размер папок.\\
**udev** - управление устройствами\\
**udevadm** - собсна управление управлением устр-вами\\
# список дисков с ID
ls -l /dev/disk/by-id
# информация по диску (в т.ч. размер секторов)
smartctl -a /dev/sda
lsblk -td
hdparm -I /dev/sdb
# Полная инфа по устр-ву, серийники, номера и т.д.
udevadm info --query=all --name=/dev/sda
===== Монтирование дисков/разделов =====
Монтировать указанный диск к ФС:
# mount /dev/newdisk /desc-fold/
Размонтировать:
# umount /desc-fold/
Монтирование NFS с удаленного хоста
# mount host:/folder /desc-fold
Автоматическое монтирование настраивается в файле **/etc/fstab**.\\
Структура записи:
* **file system** - устройство (источник) для монтирования.
* **mount point** - место монтирования.
* **type** - тип ФС.
* **options** - параметры монтирования.
* **dump** - резервное копирование dump (устар).
* **pass** - приоритет проверки при загрузки ОС (0- не проверять).
Пример (монтирование raid массива):
/dev/md0 /mnt ext4 defaults 0 0
===== Разметка дисков =====
**cfdisk** - работа с разделами, "write" для сохранения изменений\\
Для ntfs используется тип "Microsoft basic.. что то там"\\
Для создания ФС утилита **mkfs.ext4** или **mkntfs**, последняя ставится в пакете "ntfs-3g"\\
===== RAID массив =====
Для работы с raid массивами, в Linux есть утилита **mdadm**, ставится отдельно.\\
==== Сборка ====
Для начала стоит проверить, при необходимости занулить суперблоки на дисках:
# mdadm --zero-superblock --force /dev/sd{b,c}
Далее, удалим метаданные с дисков:
# wipefs --all --force /dev/sd{b,c}
Сборка массива (-l 1 -уровень raid; -n 2 -кол-во дисков):\\
(рекомендуется указывать **ID дисков**, узнать можно командой **ls -l /dev/disk/by-id**)
# mdadm --create --verbose /dev/dm0 -l 1 -n 2 /dev/sd{b,c}
Далее, командой **lsblk** можно увидеть что в указанных дисках, появились разделы **md0**.\\
Процесс синхронизации можно увидеть командой **cat /proc/mdstat**.\\
**Для сохранения** результата, необходимо внести информацию в файл **/etc/mdadm/mdadm.conf**
echo "DEVICE partitions" > /etc/mdadm/mdadm.conf
mdadm --detail --scan --verbose | awk '/ARRAY/ {print}' >> /etc/mdadm/mdadm.conf
Так же, создаем файловую систему, на созданном диске: **mkfs.ext4 /dev/md0** и монтируем диск, при необходимости.\\
==== Информация о raid ====
Состояние всех raid
# cat /proc/mdstat
Подробная информация
# mdadm -D /dev/md0
* **Version** - версия метаданных
* **Creation time** - дата создания массива
* **Update time** - дата последнего изменения
* **State** - состояние, clean - все в порядке
* **Active, Working, Failed, Spare devices** - кол-во работающих, добавленных, сбойных, запасных устр-в
==== Проверка целостности ====
Запуск проверки
# echo 'check' > /sys/block/md0/md/sync_action
Просмотр результата: (0- все в порядке)
# cat /sys/block/md0/md/mismatch_cnt
Остановка проверки:
# echo 'idle' > /sys/block/md0/md/sync_action
==== Замена диска ====
Удаляем сбойный диск:
# mdadm /dev/md0 --remove /dev/sdc
Добавляем новый:
# mdadm /dev/md0 --add /dev/sde
Смотрим состояние, синхронизация должна начаться автоматически.\\
**Запасной диск**- запасным будет диск, который просто добавлен к массиву, при выходе из строя, он автоматически станет активным
# mdadm /dev/md0 --add /dev/sdd
Чтобы добавить диск в качестве активного, нужно после добавления, расширить массив:
# mdadm -G /dev/md0 --raid-devices=3
**Симуляция выхода из строя** диска:
# mdadm /dev/md0 --fail /dev/sdb
==== Удаление массива ====
umount /folder
mdadm -S /dev/md0
mdadm --zero-superblock /dev/sd{d,c,d}
wipefs --all --force /dev/sd{b,c,d}
==== Траблы ====
После аварийного завершения сервера, иногда не запускается ОС, из-за проблем с массивом, хз в чем там тонкости, иногда меняется название массива, => нужно изменить параметры монтирования.\\
Иногда не запускается сам массив, сейчас я просто остановил его командой **mdadm --stop /dev/md127**, попробовал пересобрать, но выдал ошибки, в итоге перезагрузил сервер и заработало..\\
==== Переустановка ОС ====
# После переустановки, поиск созданных массивов
mdadm --assemblr --scan
# Тек состояние
mdadm /proc/mdstat
# Создайте конфиг файл для массива
mdadm --detail --scan --verbose > /etc/mdadm.conf
# Создайте точку монтирования
mkdir /stor1
# Далее запись в /etc/fstab
/dev/md127 /stor1 ext4 defaults 0 0
# Так же состояние можно посмотреть командой
mdadm -D /dev/md127
===== LVM =====
Это метод распределения пространства жесткого диска по логическим томам, размер которых, в последствии можно менять.\\
Объединить можно место с нескольких физических дисков, в общее логическое пространство, затем из этого пространства выделять логические тома.\\
Три уровня абстракции:
* **PV** - физический уровень, диски или разделы. **pvcreate**
* **VG** - группа томов, создается на инициализированных дисках. **vgcreate**
* **LV** - логические тома, группы томов делятся на логические тома. **lvcreate**
Для работы нужна утилита **lvm2**.\\
==== Создание ====
Помечаем диски, для работы в LVM (**pvdisplay**- просмотр результата)
#pvcreate /dev/sd{b,c}
Создаем группу томов (**vgdisplay**- просмотр результата)
# vgcreate vg0 /dev/sd{b,c}
Создаем логические тома (**lvdisplay**- просмотр результата)
# lvcreate -L 50G -n lv0 vg0
Далее создаем ФС, монтируем и т.д.\\
Обращение к логическому тому происходит через группу: **/dev/vg0/lv0**.\\
==== Удаление ====
Размонтируем
lvremove /dev/vg/lv0
vgremove vg0
pvremove /dev/sd{b,c}
==== Примеры ====
:!: Добавление нового диска в пулл
# Информация об установке LVM
sudo lvmdiskscan
# Проверяем подключение нового диска, в данном случае "/dev/sda"
sudo fdisk -l
# Создаем физический том
sudo pvcreate /dev/sda
# Смотрим существующие группы томов
sudo vgs
# Расширяем группу "ubuntu-vg" на созданный физ том
sudo vgextend ubuntu-vg /dev/sda
# Смотрим логические тома
sudo lvdisplay
# Расширяем нужный логический том
sudo lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv
# Теперь нужно расширить файловую систему
# Смотрим какая используется (в данном случае ext4)
lsblk -f
# Расширяем ФС на все доступное пространство (безопасно для файлов)
sudo resize2fs /dev/ubuntu-vg/ubuntu-lv
# для xfs
sudo xfs_growfs /dev/ubuntu-vg/ubuntu-lv
# Смотрим результат
df -h
===== Ручная разметка при установке =====
Во время установки, при ручной разметке, для загрузчика достаточно 500мб, с ФС ext2 т.к. она не журналируемая, так же, можно создать раздел подкачки, указав соответствующий тип раздела.\\
Первые три раздела можно делать **первичными**, остальные логическими.\\
Два варианта из-за специфики **MBR**..\\