PVE: различия между версиями

Материал из wiki.nntc.nnov.ru
Перейти к навигации Перейти к поиску
(StarterKit GNOME3)
(Монтирование хранилищ)
 
(не показаны 33 промежуточные версии 2 участников)
Строка 80: Строка 80:
 
  !!! Перед этим нужно чтобы был настроен мост и статический ip по инструкциям из предыдущего пункта
 
  !!! Перед этим нужно чтобы был настроен мост и статический ip по инструкциям из предыдущего пункта
  
 +
MACHINE_NAME='mobd-06'
 
  hostnamectl set-hostname $MACHINE_NAME
 
  hostnamectl set-hostname $MACHINE_NAME
 
  IP=$(ip a | grep vmbr0 | tail -1 | awk {'print $2'} | awk -F '/' {'print $1'})
 
  IP=$(ip a | grep vmbr0 | tail -1 | awk {'print $2'} | awk -F '/' {'print $1'})
Строка 85: Строка 86:
 
  echo "127.0.0.1 localhost" > /etc/hosts
 
  echo "127.0.0.1 localhost" > /etc/hosts
 
  echo "$IP $HOST.nntc.nnov.ru $HOST" >> /etc/hosts
 
  echo "$IP $HOST.nntc.nnov.ru $HOST" >> /etc/hosts
 +
 +
Перезагрузиться и убедиться, что имя хоста после перезагрузки поменялось!
  
 
===Установка ProxMox===
 
===Установка ProxMox===
Строка 94: Строка 97:
 
  update-kernel -y
 
  update-kernel -y
  
Устанавливаенм пакет
+
Устанавливаем пакеты
  
  apt-get install -qq -y pve-manager
+
  apt-get install -qq -y pve-manager kernel-modules-zfs-un-def sendmail
  
 
Стартуем и включаем сервисы
 
Стартуем и включаем сервисы
Строка 109: Строка 112:
 
  systemctl enable corosync lxc lxc-net lxc-monitord pve-cluster pvedaemon pve-firewall pvestatd pve-ha-lrm pve-ha-crm spiceproxy pveproxy pve-guests
 
  systemctl enable corosync lxc lxc-net lxc-monitord pve-cluster pvedaemon pve-firewall pvestatd pve-ha-lrm pve-ha-crm spiceproxy pveproxy pve-guests
  
Если нужна поддержка zfs
+
Перезагрузиться и убедиться, что интерфейс доступен по адресу https://localhost:8006
 +
 
 +
===Скрипт проверки доступности веб интерфейса===
 +
 
 +
/opt/pve_checker.sh
 +
 
 +
Содержимое:
 +
 
 +
<pre>
 +
#!/bin/bash
 +
 
 +
res=1
 +
 
 +
function check(){
 +
wget --no-check-certificate https://localhost:8006 &> /dev/null
 +
res="$?"
 +
}
 +
 
 +
while [ $res -ne 0 ];do
 +
check
 +
systemctl restart pve-cluster
 +
echo "retry after 3 sec ..."
 +
sleep 3s
 +
done
 +
 
 +
echo "success"
 +
exit 0
 +
 
 +
</pre>
 +
 
 +
 
 +
==Старый вариант разметки дисков и настройки zfs (с mdadm)==
 +
===Скрипт авторазметки дисков===
 +
 
 +
<pre>
 +
 
 +
#диск с pve
 +
os_disk='/dev/nvme1n1'
 +
data_disk='/dev/nvme0n1'
 +
 
 +
#create partition /dev/nvme1n1p5
 +
fdisk $os_disk <<EOF
 +
n
 +
 
 +
 
 +
 
 +
w
 +
EOF
 +
 
 +
</pre>
 +
 
 +
 
 +
<pre>
 +
#пустой диск
 +
#create partition /dev/nvme0n1p1
 +
wipefs -af $data_disk
 +
fdisk $data_disk <<EOF
 +
g
 +
n
 +
 
 +
 
 +
 
 +
Y
 +
w
 +
EOF
 +
 
 +
</pre>
 +
 
 +
Собираем из свободных разделов stripe-raid
 +
 
 +
echo 1 > /sys/module/raid0/parameters/default_layout
 +
wipefs -af /dev/nvme1n1p5
 +
wipefs -af /dev/nvme0n1p1
 +
mdadm --create /dev/md0 -l 0 -n 2 /dev/nvme1n1p5 /dev/nvme0n1p1
 +
 
 +
 
 +
Поверх страйпа настраиваем zfs:
 +
 
 +
/sbin/modprobe zfs
 +
zpool create zfspool /dev/md0 -f
 +
zfs set compression=off zfspool
 +
zfs set sync=disabled zfspool
 +
 
 +
 
 +
Подключаем zfspool в pve
 +
 
 +
pvesm add zfspool vmstorage --pool zfspool --content images,rootdir
 +
 
 +
 
 +
Подключаем внешнее хранилище в pve
 +
 
 +
pvesm add cifs pveshare --server 172.16.254.123 --share disk1 --username root --password --content iso,backup
 +
 
 +
===Монтирование хранилищ===
 +
 
 +
Написать точки монтирования и команды монтирования двух внешних накопителей по 3 ТБ!
 +
 
 +
Хранилище с apve3 (TOSHIBA - серверный диск)
 +
 
 +
pvesm add cifs iso --server 172.16.254.123 --share disk1 --username root --password --content iso
 +
 
 +
 
 +
В новой сети:
 +
 
 +
pvesm add cifs iso --server 10.207.151.241 --share disk1 --username root --password --content iso
 +
 
 +
 
 +
Хранилище с hpg8 (TOSHIBA - серверные диски)
 +
 
 +
pvesm add cifs disk1 --server 192.168.10.126 --share disk1 --username root --password --content backup
 +
pvesm add cifs disk2 --server 192.168.10.126 --share disk2 --username root --password --content backup
 +
pvesm add cifs disk3 --server 192.168.10.126 --share disk3 --username root --password --content backup
 +
pvesm add cifs disk4 --server 192.168.10.126 --share disk4 --username root --password --content backup
 +
 
 +
 
 +
Два 4х-терабайтных USB-диска, подключенных, соответственно, к PVE1 и PVE2 монтировать в PVE на базе учебных компьютеров -- так:
 +
 
 +
echo 'YourPassword' | pvesm add cifs backup1 --server 10.207.151.243 --share backup1 --username root --password --content backup
 +
echo 'YourPassword' | pvesm add cifs backup2 --server 10.207.151.242 --share backup2 --username root --password --content backup
 +
 
 +
 
 +
Для хранилищ по SAMBA в доп. сети
 +
 
 +
echo 'YourPassword' | pvesm add cifs nntc2-pve-disk1 --server 10.207.142.36 --share disk1 --username root --password --content backup
 +
echo 'YourPassword' | pvesm add cifs nntc2-pve-disk2 --server 10.207.142.36 --share disk2 --username root --password --content backup
 +
 
 +
==Новый вариант разметки дисков и настройки zfs (без mdadm)==
 +
===Скрипт авторазметки дисков===
 +
 
 +
<pre>
 +
 
 +
#диск с pve
 +
os_disk='/dev/nvme0n1'
 +
data_disk='/dev/nvme1n1'
 +
 
 +
#create partition /dev/nvme0n1p3
 +
fdisk $os_disk <<EOF
 +
n
 +
 
 +
 
 +
 
 +
w
 +
EOF
 +
 
 +
</pre>
 +
 
 +
 
 +
<pre>
 +
#пустой диск
 +
#create partition /dev/nvme1n1p1
 +
wipefs -af $data_disk
 +
fdisk $data_disk <<EOF
 +
g
 +
n
 +
 
 +
 
 +
 
 +
Y
 +
w
 +
EOF
 +
 
 +
</pre>
 +
 
 +
===Собираем raidz0 (страйп из двух разделов)===
 +
 
 +
Создаём пулл
 +
 
 +
zpool create -f -o ashift=12 zfspool /dev/nvme0n1p3 /dev/nvme1n1p1
 +
 +
Некоторые оптимизации для быстрой работы пулла в PVE
 +
 
 +
zfs set compression=off zfspool
 +
zfs set sync=disabled zfspool
 +
 
 +
Подключаем zfspool в pve
 +
 
 +
pvesm add zfspool vmstorage --pool zfspool --content images,rootdir
 +
 
 +
===Разбираем zfspool===
 +
zfs list
 +
zpool destroy <namepool>
 +
 
 +
Далее необходимо форматировать диски(разделы)
 +
wipefs -af /dev/disk
 +
 
 +
===Подключаем внешнее хранилище в pve===
 +
 
 +
Если необходимо...
 +
 
 +
pvesm add cifs pveshare --server 172.16.254.123 --share disk1 --username root --password --content iso,backup
 +
 
 +
===Монтирование хранилищ===
 +
 
 +
Хранилище с apve3 (TOSHIBA - серверный диск)
 +
 
 +
pvesm add cifs iso --server 172.16.254.123 --share disk1 --username root --password --content iso
 +
 
 +
Хранилище с hpg8 (TOSHIBA - серверные диски)
 +
 
 +
pvesm add cifs disk1 --server 192.168.10.126 --share disk1 --username root --password --content backup
 +
pvesm add cifs disk2 --server 192.168.10.126 --share disk2 --username root --password --content backup
 +
pvesm add cifs disk3 --server 192.168.10.126 --share disk3 --username root --password --content backup
 +
pvesm add cifs disk4 --server 192.168.10.126 --share disk4 --username root --password --content backup
 +
 
 +
Диски бэкапов (по 3.7 терабайта два штуки)
 +
 
 +
pvesm add cifs backup1 --server 192.168.10.121 --share backup1 --username root --password --content backup
 +
pvesm add cifs backup2 --server 192.168.10.122 --share backup2 --username root --password --content backup
 +
 
 +
 
 +
==Собираем RAID-10 на ZFS==
 +
 
 +
Допустим, собираем из четёрых разделов:
 +
 
 +
/dev/sda
 +
/dev/sdb
 +
/dev/sdc
 +
/dev/sdd
 +
 
 +
Тогда массив формата 10 собирается в две команды.
 +
 
 +
1. Создаём зеркало командой
 +
 
 +
zpool create -f -o ashift=12 zfspool1 mirror /dev/sda /dev/sdb
 +
 
 +
2. Добавляем в уже созданный пул ещё два диска в зеркале -- получаем в итоге массив, работающий в режиме зеркало+чередование (mirror+stripe), т.е. 1+0
 +
 
 +
zpool add zfspool1 mirror /dev/sdc /dev/sdd
 +
 
 +
3*. Если есть ещё пара дисков, то можно продолжить...
 +
 
 +
zpool add  mirror /dev/sde /dev/sdf
 +
 
 +
ну и так далее...
 +
 
 +
 
 +
Не забудем максимально повысить производительность, командами
  
  #?
+
  zfs set compression=off zfspool1
#update-kernel -t un-def
+
  zfs set sync=disabled zfspool1
  #apt-get install -qq -y kernel-modules-zfs-un-def
 

Текущая версия на 10:34, 21 октября 2024

Alt P10

StarterKit GNOME3

Инициализация моста

В

acc

в настройках сети выбираем "не управляется"

В настройках GNOME в разделе сетевых интерфейсов убираем у сетевого интерфейса галочку "Подключаться автоматически"

Затем создаём скрипт (замените в скрипте название интерфейса eno1 на своё):

/opt/up_vmbr0.sh

Содержимое скрипта:

#!/bin/bash

mac=`ip link show eno1 | grep 'link/ether' | awk {'print $2'}`

#creatge bridge vmbr0
ip link add name vmbr0 type bridge
#up vmbr0
ip link set vmbr0 up
#up eno1
ip link set eno1 up
#connect eno1 to the vmbr0
ip link set eno1 master vmbr0

# set mac from eno1 to vmbr0
ip link set dev vmbr0 down
ip link set dev vmbr0 address ${mac}
ip link set dev vmbr0 up

#set ip/mask to the vmbr0
ip a add 172.16.89.6/16 dev vmbr0
#set system default gw
ip ro add default via 172.16.1.1
#set system dns
echo 'nameserver 172.16.1.1' > /etc/resolv.conf


Создаём скрипт инициализации systemd:

/etc/systemd/system/up-vmbr0.service

Содержимое:

[Unit]
Description=x11vnc
Requires=network-online.target
After=network-online.target

[Service]
Restart=on-failure
ExecStart=/opt/up_vmbr0.sh
User=root
Group=root

[Install]
WantedBy=multi-user.target

Выполняем команды для старта сервиса:

systemctl daemon-reload
systemctl enable up-vmbr0.service
systemctl start up-vmbr0.service

Далее перезагрузиться и проверить пинг

Настройка имён хостов

!!! Перед этим нужно чтобы был настроен мост и статический ip по инструкциям из предыдущего пункта
MACHINE_NAME='mobd-06'
hostnamectl set-hostname $MACHINE_NAME
IP=$(ip a | grep vmbr0 | tail -1 | awk {'print $2'} | awk -F '/' {'print $1'})
HOST=$(hostname)
echo "127.0.0.1 localhost" > /etc/hosts
echo "$IP $HOST.nntc.nnov.ru $HOST" >> /etc/hosts

Перезагрузиться и убедиться, что имя хоста после перезагрузки поменялось!

Установка ProxMox

Обновляем систему

apt-get update -qq -y
apt-get dist-upgrade -y
update-kernel -y

Устанавливаем пакеты

apt-get install -qq -y pve-manager kernel-modules-zfs-un-def sendmail

Стартуем и включаем сервисы

systemctl start rrdcached ksmtuned crond lxcfs openvswitch nfs-client.target
systemctl enable rrdcached ksmtuned crond lxcfs openvswitch nfs-client.target
systemctl start pve-cluster
systemctl enable pve-cluster
systemctl start lxc lxc-net lxc-monitord pvedaemon pve-firewall pvestatd pve-ha-lrm pve-ha-crm spiceproxy pveproxy
systemctl enable corosync lxc lxc-net lxc-monitord pve-cluster pvedaemon pve-firewall pvestatd pve-ha-lrm pve-ha-crm spiceproxy pveproxy pve-guests

Перезагрузиться и убедиться, что интерфейс доступен по адресу https://localhost:8006

Скрипт проверки доступности веб интерфейса

/opt/pve_checker.sh

Содержимое:

#!/bin/bash

res=1

function check(){
wget --no-check-certificate https://localhost:8006 &> /dev/null
res="$?"
}

while [ $res -ne 0 ];do
check
systemctl restart pve-cluster
echo "retry after 3 sec ..."
sleep 3s
done

echo "success"
exit 0


Старый вариант разметки дисков и настройки zfs (с mdadm)

Скрипт авторазметки дисков


#диск с pve
os_disk='/dev/nvme1n1'
data_disk='/dev/nvme0n1'

#create partition /dev/nvme1n1p5
fdisk $os_disk <<EOF
n



w
EOF


#пустой диск
#create partition /dev/nvme0n1p1
wipefs -af $data_disk
fdisk $data_disk <<EOF
g
n



Y
w
EOF

Собираем из свободных разделов stripe-raid

echo 1 > /sys/module/raid0/parameters/default_layout
wipefs -af /dev/nvme1n1p5
wipefs -af /dev/nvme0n1p1
mdadm --create /dev/md0 -l 0 -n 2 /dev/nvme1n1p5 /dev/nvme0n1p1


Поверх страйпа настраиваем zfs:

/sbin/modprobe zfs 
zpool create zfspool /dev/md0 -f
zfs set compression=off zfspool
zfs set sync=disabled zfspool


Подключаем zfspool в pve

pvesm add zfspool vmstorage --pool zfspool --content images,rootdir


Подключаем внешнее хранилище в pve

pvesm add cifs pveshare --server 172.16.254.123 --share disk1 --username root --password --content iso,backup

Монтирование хранилищ

Написать точки монтирования и команды монтирования двух внешних накопителей по 3 ТБ!

Хранилище с apve3 (TOSHIBA - серверный диск)

pvesm add cifs iso --server 172.16.254.123 --share disk1 --username root --password --content iso


В новой сети:

pvesm add cifs iso --server 10.207.151.241 --share disk1 --username root --password --content iso


Хранилище с hpg8 (TOSHIBA - серверные диски)

pvesm add cifs disk1 --server 192.168.10.126 --share disk1 --username root --password --content backup
pvesm add cifs disk2 --server 192.168.10.126 --share disk2 --username root --password --content backup
pvesm add cifs disk3 --server 192.168.10.126 --share disk3 --username root --password --content backup
pvesm add cifs disk4 --server 192.168.10.126 --share disk4 --username root --password --content backup


Два 4х-терабайтных USB-диска, подключенных, соответственно, к PVE1 и PVE2 монтировать в PVE на базе учебных компьютеров -- так:

echo 'YourPassword' | pvesm add cifs backup1 --server 10.207.151.243 --share backup1 --username root --password --content backup
echo 'YourPassword' | pvesm add cifs backup2 --server 10.207.151.242 --share backup2 --username root --password --content backup


Для хранилищ по SAMBA в доп. сети

echo 'YourPassword' | pvesm add cifs nntc2-pve-disk1 --server 10.207.142.36 --share disk1 --username root --password --content backup
echo 'YourPassword' | pvesm add cifs nntc2-pve-disk2 --server 10.207.142.36 --share disk2 --username root --password --content backup

Новый вариант разметки дисков и настройки zfs (без mdadm)

Скрипт авторазметки дисков


#диск с pve
os_disk='/dev/nvme0n1'
data_disk='/dev/nvme1n1'

#create partition /dev/nvme0n1p3
fdisk $os_disk <<EOF
n



w
EOF


#пустой диск
#create partition /dev/nvme1n1p1
wipefs -af $data_disk
fdisk $data_disk <<EOF
g
n



Y
w
EOF

Собираем raidz0 (страйп из двух разделов)

Создаём пулл

zpool create -f -o ashift=12 zfspool /dev/nvme0n1p3 /dev/nvme1n1p1

Некоторые оптимизации для быстрой работы пулла в PVE

zfs set compression=off zfspool
zfs set sync=disabled zfspool

Подключаем zfspool в pve

pvesm add zfspool vmstorage --pool zfspool --content images,rootdir

Разбираем zfspool

zfs list
zpool destroy <namepool>

Далее необходимо форматировать диски(разделы)

wipefs -af /dev/disk

Подключаем внешнее хранилище в pve

Если необходимо...

pvesm add cifs pveshare --server 172.16.254.123 --share disk1 --username root --password --content iso,backup

Монтирование хранилищ

Хранилище с apve3 (TOSHIBA - серверный диск)

pvesm add cifs iso --server 172.16.254.123 --share disk1 --username root --password --content iso

Хранилище с hpg8 (TOSHIBA - серверные диски)

pvesm add cifs disk1 --server 192.168.10.126 --share disk1 --username root --password --content backup
pvesm add cifs disk2 --server 192.168.10.126 --share disk2 --username root --password --content backup
pvesm add cifs disk3 --server 192.168.10.126 --share disk3 --username root --password --content backup
pvesm add cifs disk4 --server 192.168.10.126 --share disk4 --username root --password --content backup

Диски бэкапов (по 3.7 терабайта два штуки)

pvesm add cifs backup1 --server 192.168.10.121 --share backup1 --username root --password --content backup
pvesm add cifs backup2 --server 192.168.10.122 --share backup2 --username root --password --content backup


Собираем RAID-10 на ZFS

Допустим, собираем из четёрых разделов:

/dev/sda
/dev/sdb
/dev/sdc
/dev/sdd

Тогда массив формата 10 собирается в две команды.

1. Создаём зеркало командой

zpool create -f -o ashift=12 zfspool1 mirror /dev/sda /dev/sdb

2. Добавляем в уже созданный пул ещё два диска в зеркале -- получаем в итоге массив, работающий в режиме зеркало+чередование (mirror+stripe), т.е. 1+0

zpool add zfspool1 mirror /dev/sdc /dev/sdd

3*. Если есть ещё пара дисков, то можно продолжить...

zpool add  mirror /dev/sde /dev/sdf

ну и так далее...


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

zfs set compression=off zfspool1
zfs set sync=disabled zfspool1