[Из песочницы] Установка PROXMOX 4.3 на Soft-RAID 10 GPT

Добрый день, друзья. Сегодня я бы хотел поделиться своим личным опытом по настройке Proxmox на soft-Raid 10.

Что имеем:

  • Сервер HP ProLiant DL120 G6 (10 GB ОЗУ)
  • 4×1000Gb SATA винчестера — без физического RAID контроллера на борту
  • Флешка с PROXMOX 4.3 (об этом ниже)

Что хотим:
  • Получить инсталляцию PROXMOX 4.3 установленную полностью на S-RAID 10 GPT, что бы при отказе любого диска система продолжала работу.
  • Получить уведомление об отказе сбойного диска на почту.

Что делаем — общий план действий:
  • Устанавливаем PROXMOX 4.3
  • Поднимаем и тестируем RAID10
  • Настраиваем уведомления на почту

Под катом поэтапное прохождение квеста.

А теперь поэтапно.

Первый момент:
Подключил флешку — если вкратце — не найден установочный диск. Не могу смонтироваться.

image

Не стал разбираться что да как, да почему. Записал образ на CD-диск и подключил USB CDROM (благо он был рядом)

Второй момент:
Подключил к серверу CDROM и клавиатуру в передние порты сервера (их у него два) — первое что увидел, на первом приветственном скрине proxmox нельзя ничего нажать без мышки. То есть прееключение Tab-ом по управляющим кнопкам не происходит. Т.к. сервер был в стойке и залазить сзади было проблематично, начал по очереди втыкать клаву и мышку. Мышкой щелкаю «далее», клавой — ввожу данные.

Установка состоит из нескольких шагов:

  • Согласится с их требованиями
  • Выбрать винчестер, куда система установится.
  • Выбрать страну и часовой пояс
  • Указать имя сервера, адресацию
  • И собственно немного подождать развертки образа на сервер.

PROXMOX установлен на первый диск, который он обозвал как /dev/sda. Подключаюсь со своего ноута на адрес, который указал при установке:
root@pve1:~#ssh root@192.168.1.3

Обновляю систему:
root@pve1:~#apt-get update 

На выходе вижу
Ign http://ftp.debian.org jessie InRelease
Get:1 http://ftp.debian.org jessie Release.gpg [2,373 B]
Get:2 http://security.debian.org jessie/updates InRelease [63.1 kB]
Get:3 http://ftp.debian.org jessie Release [148 kB]        
Get:4 https://enterprise.proxmox.com jessie InRelease [401 B]      
Ign https://enterprise.proxmox.com jessie InRelease    
Get:5 https://enterprise.proxmox.com jessie Release.gpg [401 B]
Ign https://enterprise.proxmox.com jessie Release.gpg                        
Get:6 http://ftp.debian.org jessie/main amd64 Packages [6,787 kB]            
Get:7 https://enterprise.proxmox.com jessie Release [401 B]
Ign https://enterprise.proxmox.com jessie Release                                     
Get:8 http://security.debian.org jessie/updates/main amd64 Packages [313 kB]          
Get:9 https://enterprise.proxmox.com jessie/pve-enterprise amd64 Packages [401 B]
Get:10 https://enterprise.proxmox.com jessie/pve-enterprise Translation-en_US [401 B]            
Get:11 https://enterprise.proxmox.com jessie/pve-enterprise Translation-en [401 B]                         
Get:12 https://enterprise.proxmox.com jessie/pve-enterprise amd64 Packages [401 B]                         
Get:13 https://enterprise.proxmox.com jessie/pve-enterprise Translation-en_US [401 B]               
Get:14 https://enterprise.proxmox.com jessie/pve-enterprise Translation-en [401 B]                        
Get:15 https://enterprise.proxmox.com jessie/pve-enterprise amd64 Packages [401 B]                        
Get:16 https://enterprise.proxmox.com jessie/pve-enterprise Translation-en_US [401 B]                  
Get:17 https://enterprise.proxmox.com jessie/pve-enterprise Translation-en [401 B]                     
Get:18 https://enterprise.proxmox.com jessie/pve-enterprise amd64 Packages [401 B]                      
Get:19 https://enterprise.proxmox.com jessie/pve-enterprise Translation-en_US [401 B]                           
Get:20 http://security.debian.org jessie/updates/contrib amd64 Packages [2,506 B]                 
Get:21 https://enterprise.proxmox.com jessie/pve-enterprise Translation-en [401 B]                
Get:22 https://enterprise.proxmox.com jessie/pve-enterprise amd64 Packages [401 B]               
Err https://enterprise.proxmox.com jessie/pve-enterprise amd64 Packages                          
  HttpError401
Get:23 https://enterprise.proxmox.com jessie/pve-enterprise Translation-en_US [401 B]      
Get:24 http://security.debian.org jessie/updates/contrib Translation-en [1,211 B]                   
Ign https://enterprise.proxmox.com jessie/pve-enterprise Translation-en_US                                                    
Get:25 https://enterprise.proxmox.com jessie/pve-enterprise Translation-en [401 B]                  
Ign https://enterprise.proxmox.com jessie/pve-enterprise Translation-en                          
Get:26 http://security.debian.org jessie/updates/main Translation-en [169 kB]                    
Get:27 http://ftp.debian.org jessie/contrib amd64 Packages [50.2 kB]                                                          
Get:28 http://ftp.debian.org jessie/contrib Translation-en [38.5 kB]                                                          
Get:29 http://ftp.debian.org jessie/main Translation-en [4,583 kB]                                                            
Fetched 12.2 MB in 15s (778 kB/s)                                                                                             
W: Failed to fetch https://enterprise.proxmox.com/debian/dists/jessie/pve-enterprise/binary-amd64/Packages  HttpError401
E: Some index files failed to download. They have been ignored, or old ones used instead.


Это не дело. Покупать пока лицензию на поддержку не планирую. Меняю официальную подписку на их «бесплатный» репозиторий.
root@pve1:~#nano /etc/apt/sources.list.d/pve-enterprise.list

Там вижу:
deb https://enterprise.proxmox.com/debian jessie pve-enterprise

Меняю на:
deb http://download.proxmox.com/debian jessie pve-no-subscription

И снова обновляюсь и ставлю обновки системы:
root@pve1:~#apt-get update && apt-get upgrade

Теперь всё обновилось без запинки и система в новейшем состоянии. Ставлю пакеты для работы с рейдом:
root@pve1:~#apt-get install -y mdadm initramfs-tools parted

Теперь определим точный размер первого диска, он нам пригодится в дальнейшем:
root@pve1:~#parted /dev/sda print

Model: ATA MB1000EBNCF (scsi)
Disk /dev/sda: 1000GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start   End     Size    File system  Name     Flags
 1      1049kB  10.5MB  9437kB               primary  bios_grub
 2      10.5MB  1000MB  990MB   ext4         primary
 3      1000MB  1000GB  999GB                primary

Видим что ровно 1000GB — запомним. Размечаем остальные разделы под наш массив. Первым делом очищаем таблицу разделов на трех пустых дисках и размечаем диски под GPT:
root@pve1:~#dd if=/dev/zero of=/dev/sb[bcd] bs=512 count=1

1+0 records in
1+0 records out
512 bytes (512 B) copied, 7.8537e-05 s, 6.5 MB/s

Размечаем:

Второй:

root@pve1:~#parted /dev/sdb mklabel gpt

Warning: The existing disk label on /dev/sdb will be destroyed and all data on this disk will be lost. Do you want to continue?
Yes/No? yes                                                               
Information: You may need to update /etc/fstab.

Третий:
root@pve1:~#parted /dev/sdc mklabel gpt

Warning: The existing disk label on /dev/sdc will be destroyed and all data on this disk will be lost. Do you want to continue?
Yes/No? yes                                                               
Information: You may need to update /etc/fstab.

Четвертый:
root@pve1:~#parted /dev/sdd mklabel gpt

Warning: The existing disk label on /dev/sdd will be destroyed and all data on this disk will be lost. Do you want to continue?
Yes/No? yes                                                               
Information: You may need to update /etc/fstab.

Теперь воссоздаем разделы так же как на оригинальном первом диске:

1.

root@pve1:~#parted /dev/sdb mkpart primary 1M 10M

Information: You may need to update /etc/fstab.

2.
root@pve1:~#parted /dev/sdb set 1 bios_grub on

Information: You may need to update /etc/fstab.

3.
root@pve1:~#parted /dev/sdb mkpart primary 10М 1G

Information: You may need to update /etc/fstab.

Вот тут нам пригодится знание размера оригинального первого диска.

4.

root@pve1:~#parted /dev/sdb mkpart primary 1G 1000GB

Information: You may need to update /etc/fstab.

Все эти четыре шага проделываем для всех наших дисков: sdb, sdc, sdd. Вот что у меня получилось:

Это оригинальный:

root@pve1:~#parted /dev/sda print

Model: ATA MB1000EBNCF (scsi)
Disk /dev/sda: 1000GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start   End     Size    File system  Name  Flags
 1      17.4kB  1049kB  1031kB                     bios_grub
 2      1049kB  134MB   133MB   fat32              boot, esp
 3      134MB   1000GB  1000GB                     lvm

А это второй, третий и четвертый (с разницей в букве диска).
root@pve1:~#parted /dev/sdb print

Model: ATA MB1000EBNCF (scsi)
Disk /dev/sdd: 1000GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start   End     Size    File system  Name     Flags
 1      1049kB  10.5MB  9437kB               primary  bios_grub
 2      10.5MB  1000MB  990MB                primary
 3      1000MB  1000GB  999GB                primary

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

Проверить так:

root@pve1:~#mdadm --misc --examine /dev/sda

/dev/sda:
   MBR Magic : aa55
Partition[0] :   1953525167 sectors at            1 (type ee)

Проверить нужно все четыре диска.

Теперь настроим mdadm

Создаем конфиг на основе примера:

root@pve1:~#cp /etc/mdadm/mdadm.conf /etc/mdadm/mdadm.conf.orig

Опустошаем:
root@pve1:~#echo "" > /etc/mdadm/mdadm.conf

Открываем:
root@pve1:~#nano /etc/mdadm/mdadm.conf

Вводим и сохраняем:
CREATE owner=root group=disk mode=0660 auto=yes
MAILADDR user@mail.domain

Почту пока оставим как есть, потом к ней еще вернемся.

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

  • В /dev/md0 — у меня будет /boot
  • В /dev/md1 — VML раздел с системой

root@pve1:~#mdadm --create /dev/md0 --metadata=0.90 --level=10 --chunk=2048 --raid-devices=4 missing /dev/sd[bcd]2

mdadm: array /dev/md0 started.

И второй:
root@pve1:~#mdadm --create /dev/md1 --metadata=0.90 --level=10 --chunk=2048 --raid-devices=4 missing /dev/sd[bcd]3

mdadm: array /dev/md1 started.

Тут надо пояснить по ключам:
  • --level=10 — говорит что наш RAID будет именно 10
  • --chunk=2048 — размер кластера на разделе
  • --raid-devices=4 — в рейде будут принимать участие четыре устройства
  • missing /dev/sd[bcd]2 — первый рабочий раздел пока помечаем отсутствующим, остальные три добавляем в рейд

Сохраняем конфигурацию:
root@pve1:~#mdadm --detail --scan >> /etc/mdadm/mdadm.conf

Проверяем содержание:
root@pve1:~# cat /etc/mdadm/mdadm.conf

CREATE owner=root group=disk mode=0660 auto=yes
MAILADDR user@mail.domain
ARRAY /dev/md0 metadata=0.90 UUID=4df20dfa:4480524a:f7703943:85f444d5
ARRAY /dev/md1 metadata=0.90 UUID=432e3654:e288eae2:f7703943:85f444d5

Теперь нам нужно действующий LVM массив перенести на три пустых диска. Для начала создаем в рейде md1 — LVM-раздел:
root@pve1:~#pvcreate /dev/md1 -ff

Physical volume "/dev/md1" successfully created

И добавляем его в группу pve:
root@pve1:~#vgextend pve /dev/md1

Volume group "pve" successfully extended

Теперь переносим данные с оригинального LVM на новосозданный:
root@pve1:~#pvmove /dev/sda3 /dev/md1

/dev/sda3: Moved: 0.0%

Процесс долгий. У меня занял порядка 10 часов. Интересно, что запустил я его по привычке будучи подключенным по SSH и на 1,3% понял что сидеть столько времени с ноутом на работе как минимум не удобно. Отменил операцию через CTRL+C, подошел к физическому серверу и попробовал запустить команду переноса там, но умная железяка отписалась, что процесс уже идет и команда второй раз выполнятся не будет, и начала рисовать проценты переноса на реальном экране. Как минимум спасибо :)

Процесс завершился два раза написав 100%. Убираем из LVM первый диск:

root@pve1:~#vgreduce pve /dev/sda3

  Removed "/dev/sda3" from volume group "pve"

Переносим загрузочный /boot в наш новый рейд /md0, но для начала форматируем и монтируем сам рейд.
root@pve1:~#mkfs.ext4 /dev/md0

mke2fs 1.42.12 (29-Aug-2014)
Creating filesystem with 482304 4k blocks and 120720 inodes
Filesystem UUID: 6b75c86a-0501-447c-8ef5-386224e48538
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done

Создаем директорию и монтируем туда рейд:
root@pve1:~#mkdir /mnt/md0

root@pve1:~#mount /dev/md0 /mnt/md0

Копируем содержимое живого /boot:
root@pve1:~#cp -ax /boot/* /mnt/md0

Отмонтируем рейд и удаляем временную директорию:
root@pve1:~#umount /mnt/md0

root@pve1:~#rmdir /mnt/md0

Определим UUID раздела рейда, где хранится /boot — это нужно, что бы правильно записать его в таблицу /etc/fstab:
root@pve1:~#blkid |grep md0

/dev/md0: UUID=»6b75c86a-0501–447c-8ef5–386224e48538» TYPE=«ext4»
Откроем таблицу и пропишем в ее конец данные загрузки /boot:
root@pve1:~#nano /etc/fstab

Прописываем и сохраняем:
UUID="6b75c86a-0501-447c-8ef5-386224e48538" /boot ext4 defaults 0 1

Теперь монтируем /boot:
root@pve1:~#mount /boot

Разрешим ОС загружаться, даже если состояние BOOT_DEGRADED (то есть рейд деградирован по причине выхода из строя дисков):
root@pve1:~#echo "BOOT_DEGRADED=true" > /etc/initramfs-tools/conf.d/mdadm

Прописываем загрузку ramfs:
root@pve1:~#mkinitramfs -o /boot/initrd.img-`uname -r`

Графический режим загрузчика отключаем:
root@pve1:~#echo "GRUB_TERMINAL=console" >> /etc/default/grub

Инсталируем загрузчик на все три диска:
root@pve1:~#grub-install /dev/sdb

Installing for i386-pc platform.
Installation finished. No error reported.

root@pve1:~#grub-install /dev/sdc>

Installing for i386-pc platform.
Installation finished. No error reported.

root@pve1:~#grub-install /dev/sdd

Installing for i386-pc platform.
Installation finished. No error reported.

Теперь очень важный момент. Мы берем за основу второй диск /dev/sdb, на котором система, загрузчик и grub и переносим всё это на первый диск /dev/sda, что бы в последствии сделать его так же частью нашего рейда. Для этого рассматриваем первый диск как чистый и размечаем так же, как другие в начале этой статьи

Занулим и пометим как GPT:

root@pve1:~#dd if=/dev/zero of=/dev/sda bs=512 count=1

1+0 records in
1+0 records out
512 bytes (512 B) copied, 0.0157829 s, 32.4 kB/s

root@pve1:~#parted /dev/sda mklabel gpt

Information: You may need to update /etc/fstab.

Разбиваем его по разделам в точности как другие три:
root@pve1:~#parted /dev/sda mkpart primary 1M 10M

Information: You may need to update /etc/fstab.

root@pve1:~#parted /dev/sda set 1 bios_grub on

Information: You may need to update /etc/fstab.

root@pve1:~#parted /dev/sda mkpart primary 10М 1G

Information: You may need to update /etc/fstab.

Тут нам снова понадобиться точное знание размера диска. Напомню, получили мы его командой, которую в данном случае надо применять к диску /dev/sdb:
root@pve1:~#parted /dev/sdb print

Так как диски у нас одинаковые, то размер не изменился — 1000Gb. Размечаем основной раздел:
root@pve1:~#parted /dev/sda mkpart primary 1G 1000Gb

Information: You may need to update /etc/fstab.

Должно получится так:
root@pve1:~#parted /dev/sda print

Model: ATA MB1000EBNCF (scsi)
Disk /dev/sda: 1000GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start   End     Size    File system  Name     Flags
 1      1049kB  10.5MB  9437kB  fat32        primary  bios_grub
 2      10.5MB  1000MB  990MB                primary
 3      1000MB  1000GB  999GB                primary

Осталось добавить этот диск в общий массив. Второй раздел соответственно в /md0, а третий в /md1:
root@pve1:~#mdadm --add /dev/md0 /dev/sda2

mdadm: added /dev/sda2

root@pve1:~#mdadm --add /dev/md1 /dev/sda3

mdadm: added /dev/sda3

Ждем синхронизации…
root@pve1:~#watch cat /proc/mdstat

Данная команда в реальном времени показывает процесс синхронизации:
Every 2.0s: cat /proc/mdstat                                                                              Fri Nov 11 10:09:18 2016

Personalities : [raid10]
md1 : active raid10 sda3[4] sdd3[3] sdc3[2] sdb3[1]
      1951567872 blocks 2048K chunks 2 near-copies [4/3] [_UUU]
      [>....................]  recovery =  0.5% (5080064/975783936) finish=284.8min speed=56796K/sec
      bitmap: 15/15 pages [60KB], 65536KB chunk

md0 : active raid10 sda2[0] sdd2[3] sdc2[2] sdb2[1]
      1929216 blocks 2048K chunks 2 near-copies [4/4] [UUUU]

И если первый рейд с /boot синхронизировался сразу, то для синхронизации второго понадобилось терпение (в районе 5 часов).

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

root@pve1:~#dpkg-reconfigure grub-pc

Пару раз нажимаем Enter ничего не меняя и на последнем шаге отмечаем галками все 4 диска
md0/md1 не трогаем!

Осталось перезагрузить систему и проверить, что все в порядке:

root@pve1:~#shutdown –r now

Система загрузилась нормально (я даже несколько раз менял в BIOS порядок загрузки винтов — грузится одинаково правильно).

Проверяем массивы:

root@pve1:~#cat /proc/mdstat

Personalities : [raid10] 
md1 : active raid10 sda3[0] sdd3[3] sdc3[2] sdb3[1]
      1951567872 blocks 2048K chunks 2 near-copies [4/4] [UUUU]
      bitmap: 2/15 pages [8KB], 65536KB chunk

md0 : active raid10 sda2[0] sdd2[3] sdc2[2] sdb2[1]
      1929216 blocks 2048K chunks 2 near-copies [4/4] [UUUU]

По четыре подковы в каждом рейде говорят о том, что все четыре диска в работе. Смотрим информацию по массивам (на примере первого, точнее нулевого).
root@pve1:~#mdadm --detail /dev/md0

/dev/md0:
        Version : 0.90
  Creation Time : Thu Nov 10 15:12:21 2016
     Raid Level : raid10
     Array Size : 1929216 (1884.32 MiB 1975.52 MB)
  Used Dev Size : 964608 (942.16 MiB 987.76 MB)
   Raid Devices : 4
  Total Devices : 4
Preferred Minor : 0
    Persistence : Superblock is persistent

    Update Time : Fri Nov 11 10:07:47 2016
          State : active 
 Active Devices : 4
Working Devices : 4
 Failed Devices : 0
  Spare Devices : 0

         Layout : near=2
     Chunk Size : 2048K

           UUID : 4df20dfa:4480524a:f7703943:85f444d5 (local to host pve1)
         Events : 0.27

    Number   Major   Minor   RaidDevice State
       0       8        2        0      active sync set-A   /dev/sda2
       1       8       18        1      active sync set-B   /dev/sdb2
       2       8       34        2      active sync set-A   /dev/sdc2
       3       8       50        3      active sync set-B   /dev/sdd2

Видим, что массив типа RAID10, все диски на месте, активные и синхронизированы.

Теперь можно было бы поиграться с отключением дисков, изменении диска-загрузчика в BIOS, но перед этим давайте настроим уведомление администратора при сбоях в работе дисков, а значит и самого рейда. Без уведомления рейд будет умирать медленно и мучительно, а никто не будет об этом знать.

В Proxmox по умолчанию уже стоит postfix, удалять его я не стал, хоть и сознательно понимаю что другие MTA было бы проще настроить.

Ставим SASL библиотеку (мне она нужна, что бы работать с нашим внешним почтовым сервером):

root@pve1:/etc#apt-get install libsasl2-modules

Создаем файл с данными от которых будем авторизовываться на нашем удаленном почтовом сервере:
root@pve1:~#touch /etc/postfix/sasl_passwd

Там прописываем строчку:
[mail.domain.ru] pve1@domain.ru:password

Теперь создаем транспортный файл:
root@pve1:~#touch /etc/postfix/transport

Туда пишем:
domain.ru smtp:[mail.domain.ru]

Создаем generic_map:
root@pve1:~#touch /etc/postfix/generic

Тут пишем (обозначаем от кого будет отправляться почта):
root pve1@domain.ru

Создаем sender_relay (по сути, маршрут до внешнего сервера):
root@pve1:~#touch /etc/postfix/sender_relay

И пишем туда:
pve1@domain.ru smtp.domain.ru

Хешируем файлы:
root@pve1:~#postmap transport

root@pve1:~#postmap sasl_passwd

root@pve1:~#postmap geniric

root@pve1:~#postmap sender_relay

В файле /etc/postfix/main.cf у меня получилась вот такая рабочая конфигурация:
main.cf
# See /usr/share/postfix/main.cf.dist for a commented, more complete version

myhostname=domain.ru

smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
biff = no
# appending .domain is the MUA’s job.
append_dot_mydomain = no
# Uncomment the next line to generate «delayed mail» warnings
#delay_warning_time = 4h

alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
mydestination = $myhostname, localhost.$mydomain, localhost
mynetworks = 127.0.0.0/8,192.168.1.0/24
inet_interfaces = loopback-only
recipient_delimiter = +

smtp_tls_loglevel = 1
smtp_tls_session_cache_database = btree:/var/lib/postfix/smtp_tls_session_cache
smtp_use_tls = no
tls_random_source = dev:/dev/urandom

## SASL Settings
smtpd_sasl_auth_enable = no
smtp_sasl_auth_enable = yes
smtpd_use_pw_server=yes
enable_server_options=yes
smtpd_pw_server_security_options=plain, login
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sender_dependent_authentification = yes
sender_dependent_relayhost_maps = hash:/etc/postfix/sender_relay
smtpd_sasl_local_domain = $myhostname
smtp_sasl_security_options = noanonymous
smtp_sasl_tls_security_options = noanonymous
smtpd_sasl_application_name = smtpd
smtp_always_send_ehlo = yes
relayhost =
transport_maps = hash:/etc/postfix/transport
smtp_generic_maps = hash:/etc/postfix/generic
disable_dns_lookups = yes


Перезагружаем postfix:
root@pve1:~#/etc/init.d/postfix restart

Теперь нужно вернуться в файл настроек рейда и немного его поправить. Указываем кому получать письма счастья и от кого они будут приходить.
root@pve1:~#nano /etc/dmadm/mdadm.conf

У меня вот так:
CREATE owner=root group=disk mode=0660 auto=yes
MAILADDR info@domain.ru
MAILFROM pve1@dpmain.ru

ARRAY /dev/md0 metadata=0.90 UUID=4df20dfa:4480524a:f7703943:85f444d5
ARRAY /dev/md1 metadata=0.90 UUID=432e3654:e288eae2:f7703943:85f444d5

Перезапускаем mdadm, что бы перечитать настройки:
root@pve1:~#/etc/init.d/mdadm restart

Проверяем через консоль тестирование рейда и отправку письма:
root@pve1:~#mdadm --monitor --scan -1 --test --oneshot

У меня пришло два письма с информацией по обоим созданным мною рейдам. Осталось добавить задачу тестирования в крон и убрать ключ –test. Чтобы письма приходили только тогда, когда что-то произошло:
root@pve1:~#crontab -e

Добавляем задачу (не забудьте после строки нажать на Enter и перевести курсор вниз, что бы появилась пустая строка):
0 5 * * * mdadm --monitor --scan -1 –oneshot

Каждое утро в 5 утра будет производится тестирование и если возникнут проблемы, произойдет отправка почты.

На этом всё. Возможно перемудрил с конфигом postfix — пока пытался добиться нормальной отправки через наш внешний сервер, много чего надобавлял. Буду признателен, если поправите (упростите).

В следующей статье я хочу поделиться опытом переезда виртуальных машин с нашего гипервизора Esxi-6 на этот новый Proxmox. Думаю будет интересно.

UPD.
Стоит отдельно отменить момент с физическим местом на разделе /dev/data — это основной раздел созданный как LVM-Thin
Когда ставился Proxmox, он автоматически разметил /dev/sda с тем учетом, что на /root раздел где хранится система, ISO, дампы и темплеи контейнеров, он выделил 10% емкости от раздела, а именно 100Gb. На оставшемся месте он создал VLM-Thin раздел, который по сути никуда не монтируется (это еще одна тонкость версии >4.2, после перевода дисков в GPT). И как вы понимаете этот раздел стал размером 900Gb. Когда мы подняли RAID10 из 4х дисков по 1Tb — мы получили емкость (с учетом резерва RAID1+0) — 2Tb
Но когда копировали VLM в рейд — копировали его как контейнер, с его размером в 900Gb.

При первом заходе в админку Proxmox внимательный зритель может заметить, что тыкая на раздел local-lvm (pve1) — мы и наблюдаем эти с копейками 800Gb

Так вот что бы расширить VLM-Thin на весь размер в 1,9TB нам потребуется выполнить все одну команду:

lvextend /dev/pve/data -l +100%FREE

После этого систему не нужно даже перезапускать.
Не нужно делать resize2fs — и это скорее даже невозможно, потому как система начнет ругаться на 
root@pve1:~# resize2fs /dev/mapper/pve-data
resize2fs 1.42.12 (29-Aug-2014)
resize2fs: MMP: invalid magic number while trying to open /dev/mapper/pve-data
Couldn't find valid filesystem superblock.  

И правильно начнет — этот раздел у нас не подмонтирован через fstab

В общем пока я пытался понять, как расширить диск и читал форум Proxmox — система тем временем уже во всю показывала новый размер, как в таблице, так и на шкале.
image

Комментарии (3)

  • 12 ноября 2016 в 16:41

    0

    Очень подробно, спасибо)
  • 12 ноября 2016 в 17:33

    0

    Я бы сказал, что статья из серии: как перенести установленную linux на soft-raid при наличие свободных дисков и, что она изначально на LVM (масса очепяток в статье). Таких статей много, новизны информации нет. В данной статье, к сожалению, многое описано как «черная магия».
  • 12 ноября 2016 в 17:45 (комментарий был изменён)

    0

    вопрос вот такому моменту:
    Планируется установить Proxmox на отдельный диск + 2-а массива raid 1 по 4 тб созданные на программном рейде десктопной материнской платы до установки Proxmox
    Установленная виртуалка на Proxmox Debian 8 увидит эти массивы?
    Их потом можно примонтировать?

© Habrahabr.ru