Архив автора: Niferman

Mikrotik. Отказоустойчивость и балансировка.

Запись не моя. Оставил для себя, ну и других, что бы не потерялось. Спасибо vdemchuk с хабра.

Когда у меня встала необходимость разобраться, как сделать failover или load balancing, имея два и более каналов в мир, я нашел множество статей и инструкций, в которых описывались рабочие конфигурации. Но почти нигде не нашел разъяснения, как все работает, и описания отличий разных вариантов. Хочу исправить эту несправедливость и собрать простейшие варианты построения failover и load balancing конфигураций в одной статье.

Итак, у нас есть роутер, который соединяет нашу локальную сеть и два канала в интернет (основной ISP1 и резервный ISP2).

Давайте рассмотрим что же мы можем сделать:

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

У нас появился резервный канал, в который можно направить трафик при отказе основного. Но как сделать, чтобы mikrotik понял, что канал упал?

Простейшее резервирование каналов

Простейший failover можно настроить, используя приоритет маршрута (distance у mikrotik/cisco, metric в linux/windows), а так же механизм проверки доступности шлюза — check-gateway.

В приведенной ниже конфигурации весь интернет трафик по умолчанию ходит через 10.100.1.254 (ISP1). Но как только адрес 10.100.1.254 станет недоступным (а маршрут через него неактивным) — трафик пойдет через 10.200.1.254 (ISP2).

конфигурация: простейший failover

# Настроим сети провайдеров:
/ip address add address=10.100.1.1/24 interface=ISP1
/ip address add address=10.200.1.1/24 interface=ISP2
# Настроим локальный интерфейс
/ip address add address=10.1.1.1/24 interface=LAN
# скроем за NAT все что выходит из локальной сети
/ip firewall nat add src-address=10.1.1.0/24 action=masquerade chain=srcnat
### Обеспечение резервирования каналов традиционным способом
### укажем 2 default gateway с разными приоритетами
/ip route add dst-address=0.0.0.0/0 gateway=10.100.1.254 distance=1 check-gateway=ping
/ip route add dst-address=0.0.0.0/0 gateway=10.200.1.254 distance=2 check-gateway=ping

check-gateway=ping для mikrotik обрабатывается так:

Периодически (каждые 10 секунд) шлюз проверяется отсылкой на него ICMP пакета (ping). Потерянным пакет считается, если он не вернулся в течении 10 секунд. После двух потерянных пакетов шлюз считается недоступным. После получения ответа от шлюза он становится доступным и счетчик потерянных пакетов сбрасывается.

Обеспечение failover с более глубоким анализом канала

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

Я знаю два варианта решения этой инженерной задачи. Первый и самый распространенный — использовать скрипты, но так как в этой статье мы скрипты не трогаем, остановимся подробнее на втором. Он подразумевает не совсем корректное использование параметра scope, но поможет нам прощупать канал провайдера глубже, чем до шлюза.
Принцип прост:
Вместо традиционного указания default gateway=шлюз провайдера, мы скажем роутеру что default gateway это какой-то из всегда_доступных_узлов (например 8.8.8.8 или 8.8.4.4) и он в свою очередь доступен через шлюз провайдера.

конфигурация: failover с более глубоким анализом канала
# Настроим сети провайдеров:
/ip address add address=10.100.1.1/24 interface=ISP1
/ip address add address=10.200.1.1/24 interface=ISP2
# Настроим локальный интерфейс 
/ip address add address=10.1.1.1/24 interface=LAN
# скроем за NAT все что выходит из локальной сети
/ip firewall nat add src-address=10.1.1.0/24 action=masquerade chain=srcnat
###Обеспечение failover c более глубоким анализом канала###
#с помощью параметра scope укажем рекурсивные пути к узлам 8.8.8.8 и 8.8.4.4
/ip route add dst-address=8.8.8.8 gateway=10.100.1.254 scope=10
/ip route add dst-address=8.8.4.4 gateway=10.200.1.254 scope=10
# укажем 2 default gateway через узлы путь к которым указан рекурсивно
/ip route add dst-address=0.0.0.0/0 gateway=8.8.8.8 distance=1 check-gateway=ping
/ip route add dst-address=0.0.0.0/0 gateway=8.8.4.4 distance=2 check-gateway=ping

Теперь разберем, что происходит чуть подробнее:
Хитрость в том, что шлюз провайдера не знает о том, что 8.8.8.8 или 8.8.4.4 — это роутер и направит трафик по обычному пути.
Наш mikrotik считает, что по умолчанию весь интернет трафик нужно отправлять на 8.8.8.8, который напрямую не виден, но через 10.100.1.254 доступен. А если пинг на 8.8.8.8 пропадает (напомню что путь к нему у нас жестко указан через шлюз от ISP1) то mikrotik начнет слать весь интернет трафик на 8.8.4.4, а точнее на рекурсивно определенный 10.200.1.254 (ISP2).

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

PROXMOX. ОТКЛЮЧАЕМ КОММЕРЧЕСКИЙ РЕПОЗИТОРИЙ, ПОДКЛЮЧАЕМ БЕСПЛАТНЫЙ

Proxmox 8 и выше:

nano /etc/apt/sources.list.d/pve-enterprise.list
#deb https://enterprise.proxmox.com/debian/pve bookworm enterprise
deb http://download.proxmox.com/debian/pve bookworm pve-no-subscription
nano /etc/apt/sources.list.d/ceph.list
#deb https://enterprise.proxmox.com/debian/ceph-quincy bookworm enterprise
deb http://download.proxmox.com/debian/ceph-quincy bookworm no-subscription

После обновляем:

apt update && apt upgrade -y

Proxmox 7 и ниже:

nano /etc/apt/sources.list

Добавить строку в конец:

deb http://download.proxmox.com/debian/pve bullseye pve-no-subscription

И еще:

nano /etc/apt/sources.list.d/pve-enterprise.list

Закомментировать строку:

#deb https://enterprise.proxmox.com/debian/pve bullseye pve-enterprise

После обновляем:

apt update && apt upgrade -y

Меняем размер дисков KVM гостевых систем.

Первым действием увеличь размер нашей ВМ в WEB-интерфейсе Proxmox. Выбираем нашу ВМ (у меня это ВМ-108 “Kodi” с Ubuntu 20.04 на борту) переходим во вкладку Оборудование и выбираем наш диск, а далее Disk Action – Resize.

Я увеличил диск на 5 Гб. На изображение ниже размер Жесткого диска изменился на 20G

df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 15G 13G 1,8G 88% /

Если же набрать вот эту команду:

dmesg | grep sda

То из вывода видно что диск имеет 20.0 GiB
Выведем текущую таблицу разделов

fdisk -l /dev/sda | grep ^/dev
GPT PMBR size mismatch (31457279 != 41943039) will be corrected by write.
The backup GPT table is not on the end of the device.
/dev/sda1   2048     4095     2048   1M BIOS boot
/dev/sda2   4096 31455231 31451136  15G Linux filesystem

Изменим наш размер до 20 Гб, а также исправим запись PMBR

parted /dev/sda
GNU Parted 3.4
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.

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

(parted) print
Warning: Not all of the space available to /dev/sda appears to be used, you can fix the GPT to use all of the space
(an extra 10485760 blocks) or continue with the current setting? 
Fix/Ignore? F

Вот вывод всех разделов диска:

Model: QEMU QEMU HARDDISK (scsi)
Disk /dev/sda: 21,5GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start   End     Size    File system  Name  Flags
 1      1049kB  2097kB  1049kB                     bios_grub
 2      2097kB  16,1GB  16,1GB  ext4

Меняем наш размер раздела sda2 (корень системы) до максимума:

(parted) resizepart 2 100%
Warning: Partition /dev/sda2 is being used. Are you sure you want to continue?
Yes/No? Y

Далее может разметить диск до максимально размера или выдать следующее:

End?  [16,1GB]? 21,5GB                                                        
Warning: Shrinking a partition can cause data loss, are you sure you want to continue?
Yes/No? Y

Размер 21,5 GB взял из команды dmesg | grep sda
Выводим еще раз информацию о разделах диска:

(parted) print
Model: QEMU QEMU HARDDISK (scsi)
Disk /dev/sda: 21,5GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start   End     Size    File system  Name  Flags
 1      1049kB  2097kB  1049kB                     bios_grub
 2      2097kB  21,5GB  21,5GB  ext4

Видим что размер был изменён. Можно выйти:

(parted) quit

Еще раз можете набрать следующую команду:

fdisk -l /dev/sda | grep ^/dev
/dev/sda1   2048     4095     2048   1M BIOS boot
/dev/sda2   4096 41943006 41938911  20G Linux filesystem

Видим что теперь система видит 20 Гб диска.
Вводим команду для изменения файловой системы:

resize2fs /dev/sda2

Установка средств администрирования RSAT в Windows 10

Установка RSAT в Windows с помощью PowerShell

Вы можете установить компоненты администрирования RSAT в Windows 10 и 11 с помощью PowerShell.

С помощью следующей PowerShell команды можно вывести список компонентов RSAT, установленных на вашем компьютере:

Get-WindowsCapability -Name RSAT* -Online | Select-Object -Property DisplayName, State

В нашем примере инструменты управления DHCP и DNS установлены ( Installed ), а все остальные модуль RSAT отсутствуют ( NotPresent ).

Для установки RSAT в Windows используется PowerShell командлет Add-WindowsCapability.

Чтобы установить конкретный инструмент RSAT, например инструменты управления AD (в том числе консоль ADUC из модуля Active Directory для Windows Powershell), выполните команду:

Add-WindowsCapability –online –Name Rsat.ActiveDirectory.DS-LDS.Tools~~~~0.0.1.0

Для установки консоли управления DNS и модуля PowerShell DNSServer, выполните:

Add-WindowsCapability –online –Name Rsat.Dns.Tools~~~~0.0.1.0

И т.д.

Add-WindowsCapability -Online -Name Rsat.BitLocker.Recovery.Tools~~~~0.0.1.0
Add-WindowsCapability -Online -Name Rsat.CertificateServices.Tools~~~~0.0.1.0
Add-WindowsCapability -Online -Name Rsat.DHCP.Tools~~~~0.0.1.0
Add-WindowsCapability -Online -Name Rsat.FailoverCluster.Management.Tools~~~~0.0.1.0
Add-WindowsCapability -Online -Name Rsat.FileServices.Tools~~~~0.0.1.0
Add-WindowsCapability -Online -Name Rsat.GroupPolicy.Management.Tools~~~~0.0.1.0
Add-WindowsCapability -Online -Name Rsat.IPAM.Client.Tools~~~~0.0.1.0
Add-WindowsCapability -Online -Name Rsat.LLDP.Tools~~~~0.0.1.0
Add-WindowsCapability -Online -Name Rsat.NetworkController.Tools~~~~0.0.1.0
Add-WindowsCapability -Online -Name Rsat.NetworkLoadBalancing.Tools~~~~0.0.1.0
Add-WindowsCapability -Online -Name Rsat.RemoteAccess.Management.Tools~~~~0.0.1.0
Add-WindowsCapability -Online -Name Rsat.RemoteDesktop.Services.Tools~~~~0.0.1.0
Add-WindowsCapability -Online -Name Rsat.ServerManager.Tools~~~~0.0.1.0
Add-WindowsCapability -Online -Name Rsat.Shielded.VM.Tools~~~~0.0.1.0
Add-WindowsCapability -Online -Name Rsat.StorageMigrationService.Management.Tools~~~~0.0.1.0
Add-WindowsCapability -Online -Name Rsat.StorageReplica.Tools~~~~0.0.1.0
Add-WindowsCapability -Online -Name Rsat.SystemInsights.Management.Tools~~~~0.0.1.0
Add-WindowsCapability -Online -Name Rsat.VolumeActivation.Tools~~~~0.0.1.0
Add-WindowsCapability -Online -Name Rsat.WSUS.Tools~~~~0.0.1.0

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

Get-WindowsCapability -Name RSAT* -Online | Add-WindowsCapability –Online

Также вы можете установить компоненты RSAT с помощью утилиты DISM:

DISM.exe /Online /add-capability /CapabilityName:Rsat.ActiveDirectory.DS-LDS.Tools~~~~0.0.1.0 /CapabilityName:Rsat.GroupPolicy.Management.Tools~~~~0.0.1.0 /CapabilityName:Rsat.WSUS.Tools~~~~0.0.1.0

Чтобы установить только отсутствующие компоненты RSAT, выполните:

Get-WindowsCapability -Name RSAT* -Online | where State -EQ NotPresent | Add-WindowsCapability –Online

Ключи GVLK для активации Office, Project и Visio на основе KMS

По умолчанию корпоративные версии Office, такие как Office LTSC 2021, устанавливаются с универсальным ключом корпоративной лицензии (GVLK). GVLK позволяет Office автоматически обнаруживать и активировать на главном компьютере службы управления ключами (KMS) или инфраструктуре Active Directory.

Команды ручной активации

Office x86

cd \Program Files (x86)\Microsoft Office\Office16
cscript ospp.vbs /sethst:DOCKER_IP
cscript ospp.vbs /setprt:PORT
cscript ospp.vbs /inpkey:xxxxx-xxxxx-xxxxx-xxxxx-xxxxx
cscript ospp.vbs /act
cscript ospp.vbs /dstatusall

Office x86_64

cd \Program Files\Microsoft Office\Office16
cscript ospp.vbs /sethst:DOCKER_IP
cscript ospp.vbs /setprt:PORT
cscript ospp.vbs /inpkey:xxxxx-xxxxx-xxxxx-xxxxx-xxxxx
cscript ospp.vbs /act
cscript ospp.vbs /dstatusall

ПродуктGVLK
Office LTSC профессиональный плюс 2021FXYTK-NJJ8C-GB6DW-3DYQT-6F7TH
Office LTSC стандартный 2021KDX7X-BNVR8-TXXGX-4Q7Y8-78VT3
Project Профессиональный 2021FTNWT-C6WBT-8HMGF-K9PRX-QV9H8
Project Стандартный 2021J2JDC-NJCYY-9RGQ4-YXWMH-T3D4T
Visio LTSC профессиональный 2021KNH8D-FGHT4-T8RK3-CTDYJ-K2HT4
Visio LTSC стандартный 2021MJVNY-BYWPY-CWV6J-2RKRT-4M8QG
Access LTSC 2021WM8YG-YNGDD-4JHDC-PG3F4-FC4T4
Excel LTSC 2021NWG3X-87C9K-TC7YY-BC2G7-G6RVC
Outlook LTSC 2021C9FM6-3N72F-HFJXB-TM3V9-T86R9
PowerPoint LTSC 2021TY7XF-NFRBR-KJ44C-G83KF-GX27K
Publisher LTSC 20212MW9D-N4BXM-9VBPG-Q7W6M-KFBGQ
Skype для бизнеса LTSC 2021HWCXN-K3WBT-WJBKY-R8BD9-XK29P
Word LTSC 2021TN8H9-M34D3-Y64V9-TR72V-X79KV
GVLK для Office LTSC 2021 г.
ПродуктGVLK
Office профессиональный плюс 2019NMMKJ-6RK4F-KMJVX-8D9MJ-6MWKP
Office стандартный 20196NWWJ-YQWMR-QKGCB-6TMB3-9D9HK
Project профессиональный 2019B4NPR-3FKK7-T2MBV-FRQ4W-PKD2B
Project стандартный 2019C4F7P-NCP8C-6CQPT-MQHV9-JXD2M
Visio профессиональный 20199BGNQ-K37YR-RQHF2-38RQ3-7VCBB
Visio стандартный 20197TQNQ-K3YQQ-3PFH7-CCPPM-X4VQ2
Access 20199N9PT-27V4Y-VJ2PD-YXFMF-YTFQT
Excel 2019TMJWT-YYNMB-3BKTF-644FC-RVXBD
Outlook 20197HD7K-N4PVK-BHBCQ-YWQRW-XW4VK
PowerPoint 2019RRNCX-C64HY-W2MM7-MCH9G-TJHMQ
Publisher 2019G2KWX-3NW6P-PY93R-JXK2T-C9Y9V
Skype для бизнеса 2019NCJ33-JHBBY-HTK98-MYCV8-HMKHJ
Word 2019PBX3G-NWMT6-Q7XBW-PYJGG-WXD33
GVLK для Office 2019
ПродуктGVLK
Office профессиональный плюс 2016XQNVK-8JYDB-WJ9W3-YJ8YR-WFG99
Office стандартный 2016JNRGM-WHDWX-FJJG3-K47QV-DRTFM
Project профессиональный 2016YG9NW-3K39V-2T3HJ-93F3Q-G83KT
Project стандартный 2016GNFHQ-F6YQM-KQDGJ-327XX-KQBVC
Visio профессиональный 2016PD3PC-RHNGV-FXJ29-8JK7D-RJRJK
Visio стандартный 20167WHWN-4T7MP-G96JF-G33KR-W8GF4
Access 2016GNH9Y-D2J4T-FJHGG-QRVH7-QPFDW
Excel 20169C2PK-NWTVB-JMPW8-BFT28-7FTBF
OneNote 2016DR92N-9HTF2-97XKM-XW2WJ-XW3J6
Outlook 2016R69KK-NTPKF-7M3Q4-QYBHW-6MT9B
PowerPoint 2016J7MQP-HNJ4Y-WJ7YM-PFYGF-BY6C6
Publisher 2016F47MM-N3XJP-TQXJ9-BP99D-8K837
Skype для бизнеса 2016869NQ-FJ69K-466HW-QYCP2-DDBV6
Word 2016WXY84-JN2Q9-RBCCQ-3Q3J3-3PFJ6
GVLK для Office 2016

Generic Volume License Keys (GVLK)

Установите ключ продукта

Если вы переводите компьютер с хост-версии KMS, MAK или розничной версии Windows на клиент KMS, установите соответствующий ключ продукта (GVLK) из списка ниже. Чтобы установить ключ продукта клиента, откройте административную командную строку на клиенте и выполните следующую команду:

slmgr /ipk <product key>

Общие ключи корпоративной лицензии (GVLK)

В следующих таблицах вы найдете GVLK для каждой версии и выпуска Windows. LTSC — это канал долгосрочного обслуживания, в то время как LTSB — это филиал долгосрочного обслуживания.

Windows Server (версии LTSC)

Версия операционной системыКлюч продукта клиента KMS
Центр обработки данных Windows Server 2022WX4NM-KYWYW-QJJR4-XV3QB-6VM33
Центр обработки данных Windows Server 2022
Azure Edition
NTBV8-9K7Q8-V27C6-M2BTV-KHMXV
Стандарт Windows Server 2022VDYBN-27WPP-V4HQT-9VMD4-VMK7H
Windows Server 2022
Версия операционной системыКлюч продукта клиента KMS
Центр обработки данных Windows Server 2019WMDGN-G9PQG-XVVXX-R3X43-63DFG
Стандарт Windows Server 2019N69G4-B89J2-4G8F4-WWYCC-J464C
Основы Windows Server 2019WVDHN-86M7X-466P6-VHXV7-YY726
Windows Server 2019
Версия операционной системыКлюч продукта клиента KMS
Центр обработки данных Windows Server 2016CB7KF-BWN84-R7R2Y-793K2-8XDDG
Стандарт Windows Server 2016WC2BQ-8NRM3-FDDYY-2BFGV-KHKQY
Windows Server 2016 EssentialsJCKRF-N37P4-C2D82-9YXRT-4M63B
Windows Server 2016

Windows Server (полугодовые версии канала)

Версия операционной системыКлюч продукта клиента KMS
Центр обработки данных Windows Server6NMRW-2C8FM-D24W7-TQWMY-CWH2D
Стандарт Windows ServerN2KJX-J94YW-TQVFB-DG9YT-724CC
Windows Server, версии 20H2, 2004, 1909, 1903 и 1809
Версия операционной системыКлюч продукта клиента KMS
Windows 11 Pro
Windows 10 Pro
W269N-WFGWX-YVC9B-4J6C9-T83GX
Windows 11 Pro N
Windows 10 Pro N
MH37W-N47XK-V7XM9-C7227-GCQG9
Windows 11 Pro для рабочих станций
Windows 10 Pro для рабочих станций
NRG8B-VKK3Q-CXVCJ-9G2XF-6Q84J
Windows 11 Pro для рабочих станций N
Windows 10 Pro для рабочих станций N
9FNHH-K3HBT-3W4TD-6383H-6XYWF
Windows 11 Pro Education
Windows 10 Pro Education
6TP4R-GNPTD-KYYHQ-7B7DP-J447Y
Windows 11 Pro Education N
Windows 10 Pro Education N
YVWGF-BXNMC-HTQYQ-CPQ99-66QFC
Обучение Windows 11
обучение Windows 10
NW6C2-QMPVW-D7KKK-3GKT6-VCFB2
Windows 11 Education N
Windows 10 Education N
2WH4N-8QGBV-H22JP-CT43Q-MDWWJ
Windows 11 Enterprise
Windows 10 Enterprise
NPPR9-FWDCX-D2C8J-H872K-2YT43
Windows 11 Enterprise N
Windows 10 Enterprise N
DPH2V-TTNVB-4X9Q3-TJR4H-KHJW4
Windows 11 Enterprise G
Windows 10 Enterprise G
YYVX9-NTFWV-6MDM3-9PT4T-4M68B
Windows 11 Enterprise G N
Windows 10 Enterprise G N
44RPN-FTY23-9VTTB-MP9BX-T84FV
Windows 11 и Windows 10 (полугодовые версии канала)

Windows 10 (версии LTSC / LTSB)

Версия операционной системыКлюч продукта клиента KMS
Windows 10 Enterprise LTSC 2021
Windows 10 Enterprise LTSC 2019
M7XTQ-FN8P6-TTKYV-9D4CC-J462D
Windows 10 Enterprise N LTSC 2021
Windows 10 Enterprise N LTSC 2019
92NFX-8DJQP-P6BBQ-THF9C-7CG2H
Windows 10 LTSC 2021 и 2019
Версия операционной системыКлюч продукта клиента KMS
Windows 10 Enterprise LTSB 2016DCPHK-NFMTC-H88MJ-PFHPY-QJ4BJ
Windows 10 Enterprise N LTSB 2016QFFDN-GRT3P-VKWWX-X7T3R-8B639
Windows 10 LTSB 2015

Более ранние версии Windows Server

Версия операционной системыКлюч продукта клиента KMS
Центр обработки данных Windows Server2HXDN-KRXHB-GPYC7-YCKFJ-7FVDG
Стандарт Windows ServerPTXN8-JFHJM-4WC78-MPCBR-9W4KR
Windows Server, версия 1803
Версия операционной системыКлюч продукта клиента KMS
Центр обработки данных Windows Server6Y6KB-N82V8-D8CQV-23MJW-BWTG6
Стандарт Windows ServerDPCNP-XQFKJ-BJF7R-FRC8D-GF6G4
Windows Server, версия 1709
Версия операционной системыКлюч продукта клиента KMS
Стандарт Windows Server 2012 R2D2N9P-3P6X9-2R39C-7RTCD-MDVJX
Центр обработки данных Windows Server 2012 R2W3GGN-FT8W3-Y4M27-J84CP-Q3VJ9
Windows Server 2012 R2 EssentialsKNC87-3J2TX-XB4WP-VCPJV-M4FWM
Windows Server 2012 R2
Версия операционной системыКлюч продукта клиента KMS
Windows Server 2012BN3D2-R7TKB-3YPBD-8DRP2-27GG4
Windows Server 2012 N8N2M2-HWPGY-7PGT9-HGDD8-GVGGY
Единый язык Windows Server 20122WN2H-YGCQR-KFX6K-CD6TF-84YXQ
Для конкретной страны Windows Server 20124K36P-JN4VD-GDC6V-KDT89-DYFKP
Стандарт Windows Server 2012XC9B7-NBPP2-83J2H-RHMBY-92BT4
Многоточечный стандарт Windows Server 2012HM7DN-YVMH3-46JC3-XYTG7-CYQJJ
Windows Server 2012 MultiPoint PremiumXNH6W-2V9GX-RGJ4K-Y8X6F-QGJ2G
Центр обработки данных Windows Server 201248HP8-DN98B-MYWDG-T2DCC-8W83P
Windows Server 2012
Версия операционной системыКлюч продукта клиента KMS
Windows Server 2008 R2 Web6TPJF-RBVHG-WBW2R-86QPH-6RTM4
Windows Server 2008 R2 HPC editionTT8MH-CG224-D3D7Q-498W2-9QCTX
Стандарт Windows Server 2008 R2YC6KT-GKW9T-YTKYR-T4X34-R7VHC
Windows Server 2008 R2 Enterprise489J6-VHDMP-X63PK-3K798-CPX3Y
Центр обработки данных Windows Server 2008 R274YFP-3QFB3-KQT8W-PMXWJ-7M648
Windows Server 2008 R2 для систем на базе ItaniumGT63C-RJFQ3-4GMB6-BRFB9-CB83V
Windows Server 2008 R2
Версия операционной системыКлюч продукта клиента KMS
Windows Web Server 2008WYR28-R7TFJ-3X2YQ-YCY4H-M249D
Стандарт Windows Server 2008TM24T-X9RMF-VWXK6-X8JC9-BFGM2
Стандарт Windows Server 2008 без Hyper-VW7VD6-7JFBR-RX26B-YKQ3Y-6FFFJ
Windows Server 2008 EnterpriseYQGMW-MPWTJ-34KDK-48M3W-X4Q6V
Windows Server 2008 Enterprise без Hyper-V39BXF-X8Q23-P2WWT-38T2F-G3FPG
Windows Server 2008 HPCRCTX3-KWVHP-BR6TB-RB6DM-6X7HP
Центр обработки данных Windows Server 20087M67G-PC374-GR742-YH8V4-TCBY3
Центр обработки данных Windows Server 2008 без Hyper-V22XQ2-VRXRG-P8D42-K34TD-G3QQC
Windows Server 2008 для систем на базе Itanium4DWFP-JF3DJ-B7DTH-78FJB-PDRHK
Windows Server 2008

Более ранние версии Windows

Версия операционной системыКлюч продукта клиента KMS
Windows 8.1 ProGCRJD-8NW9H-F2CDX-CCM8D-9D6T9
Windows 8.1 Pro NHMCNV-VVBFX-7H文-CTY9B-B4FXY
Windows 8.1 EnterpriseMHF9N-XY6XB-WVXMC-BTDCT-MKKG7
Windows 8.1 Enterprise NTT4HM-HN7YT-62K67-RGRQJ-JFFXW
Windows 8.1
Версия операционной системыКлюч продукта клиента KMS
Windows 8 ProNG4HW-VH26C-733KW-K6F98-J8CK4
Windows 8 Pro NXCVCF-2NXM9-723PB-MHCB7-2RYQQ
Windows 8 Enterprise32JNW-9KQ84-P47T8-D8GGY-CWCK7
Windows 8 Enterprise NJMNMF-RHW7P-DMY6X-RF3DR-X2BQT
Windows 8
Версия операционной системыКлюч продукта клиента KMS
Windows 7 ProfessionalFJ82H-XT6CR-J8D7P-XQJJ2-GPDD4
Windows 7 Professional NMRPKT-YTG23-K7D7T-X2JMM-QY7MG
Windows 7 Professional EW82YF-2Q76Y-63HXB-FGJG9-GF7QX
Windows 7 Enterprise33PXH-7Y6KF-2VJC9-XBBR8-HVTHH
Windows 7 Enterprise NYDRBP-3D83W-TY26F-D46B2-XCKRJ
Windows 7 Enterprise EC29WB-22CC8-VJ326-GHFJW-H9DH4
Windows 7

Бесплатный KMS сервер⁠⁠

Для активации корпоративных лицензий Microsoft в локальной сети организации рекомендуют использовать KMS сервер. Сервер многопользовательской активации KMS позволяет активировать продукты Microsoft Windows и Office без доступа в Интернет. Принцип активации такой, клиент подключившись к сети организации, выполняет запрос к серверу DNS, на предмет наличия записи SRV_VLMCS._TCP и если такая запись имеется, то клиент отправляет запрос KMS серверу для активации. Если запись в DNS сервере отсутствует или же в организации отсутствует DNS сервер, то сервер активации на клиенте указывается вручную. Для проверки наличия DNS записи необходимо ввести команду nslookup -type=srv _vlmcs._tcp. Далее сервер активации, в зависимости от установленного KMS ключа, либо активирует лицензию на 180 дней, либо нет. Через 180 дней процедура активации повторяется, хотя клиенты по умолчанию пытаются возобновить активацию через каждые семь дней. После возобновления активации клиента отсчет срока активации начинается заново. Установленный KMS ключ на сервере может активировать нижестоящие версии продуктов Microsoft. Таблицу активации клиентов можно посмотреть здесь. Можно активировать и вышестоящие версии, но для этого на сервере потребуется установить необходимые обновления.

Чтобы развернуть сервер KMS необходимо иметь ключ узла KMS, который можно найти в личном кабинете с корпоративными лицензиями. При установке ключа на сервере активации потребуется доступ в Интернет для проверки его на серверах Microsoft. Потом уже доступ в Интернет можно отключить. Таким ключом на сервере можно активировать большое количество клиентов, даже превышающее количество имеющихся лицензий в организации. Все было замечательно, до поры до времени, пока мир не сошел с ума. Microsoft начала сворачивать свою деятельность на территории РФ и кинула корпоративных клиентов, а потом и еще обычных пользователей. Ключи узла KMS заблокированы на серверах Microsoft и по телефону их активировать тоже теперь не возможно, даже если прикинуться жителем Казахстана. Блокировка скорее всего происходит по принадлежности ключа к территории РФ. Все ключи в моей организации оказались заблокированы. Так мы жили месяца три с не активированными лицензиями.

Отношения с Microsoft уже испорчены, поэтому мне и карты в руки. В этой жизни пока сам не возьмешься, никто тебе подарков не сделает (С). Хотелось понять есть ли какой-нибудь способ наказать Microsoft за подлость с их стороны. Ответ я нашел очень быстро. В сети, на гитхабе, есть проект под названием vlmcsd. Господа, это просто подарок для халявщиков. VLMCSD — это KMS эмулятор с открытым кодом, разработанный на C и работающий на таких ОС как Linux, FreeBSD, Solaris, Minix, Mac OS, iOS и Windows. На данный момент эмулятор поддерживает версии протоколов KMS 4, 5 и 6. Сам эмулятор можно скомпилировать из исходников или же воспользоваться уже готовыми бинарниками. Настройка и запуск KMS сервера займет совсем немного времени.

Опишу процесс поднятия KMS узла на Debian и Alpine.

Скачиваем архив с бинарниками

wget -O vlmcsd-1113.tar.gz https://github.com/Wind4/vlmcsd/releases/download/svn1113/bi...

Распаковываем архив

tar -C vlmcsd-1113 -xvf vlmcsd-1113.tar.gz.

Так же еще необходимо скачать пару файлов

wget -O vlmcds.ini https://github.com/Wind4/vlmcsd/raw/master/etc/vlmcsd.ini
wget -O vlmcsd.kmd https://github.com/Wind4/vlmcsd/raw/master/etc/vlmcsd.kmd.

Создаем каталог mkdir -p /opt/vlmcsd. Копируем туда файлы

cp vlmcsd.{ini, kmd} /opt/vlmcsd/
cp vlmcsd-1113/binaries/Linux/intel/glibc/vlmcsd-x64-glibc /opt/vlmcsd/vlmcsd

Для Alpine необходимо скопировать следующий бинарник

cp vlmcsd-1113/binaries/Linux/static/vlmcsd-x64-musl-static /opt/vlmcsd/vlmcsd.

Далее лучше всего создать пользователя, с правами которого будет запускаться демон

useradd -s /sbin/nologin -d /run/vlmcsd/ -m -r vlmcsd.

В Alpine команда выглядит следующим образом

adduser -S -h /run/vlmcsd vlmcsd.

Раздаем пользователю vlmcsd права на каталог

chown -R vlmcsd:vlmcsd /opt/vlmcsd

В Alpine команда следующая

chown -R vlmcsd:nogroup /opt/vlmcsd

Необходимо еще создать файл для логов

touch /var/log/vlmcsd.log

Раздаем права на vlmcsd.log

chown vlmcsd:vlmcsd /var/log/vlmcsd.log

Для Alpine

chwon vlmcsd:nogroup /var/log/vlmcsd.log.

Рекомендую немного отредактировать файл настроек vlmcsd.ini. Я прописал такие настройки:

Listen = 192.168.88.10:1688
PidFile = /var/run/vlmcsd/vlmcsd.pid
KmsData = /opt/vlmcsd/vlmcsd.kmd
LogFile = /var/log/vlmcsd.log
User = vlmcsd

Для Debian осталось написать systemd unit для запуска демона. Создаем файл touch /etc/systemd/system/vlmcsd.service и прописываем в нем такие строки:

[Unit]
Description=Microsoft KMS Server
After=network-online.target
Wants=network-online.target
[Service]
Type=forking
ExecStart=/opt/vlmcsd/vlmcsd -i /opt/vlmcsd/vlmcsd.ini
[Install]
WantedBy=multi-user.target

Теперь можно запускать KMS сервер systemctl start vlmcsd и проверить статус systemctl status vlmcsd. На выхлопе должно получиться следующее:

Также можно проверить статус порта netstat -tunlp | grep vlmcsd. Картина должна быть следующей:

tcp 0 0 192.168.88.10:1688 0.0.0.0:* LISTEN 1466/vlmcsd

Управление загрузкой сервисов с системой инициализации systemd

Проверить статус (отображение статуса всех сервисов)
systemctl list-units --type service --all
Проверить включен ли сервис
systemctl is–enabled имя_сервиса
Добавить в автозапуск
systemctl enable имя_сервиса
Удалить из автозапуска
systemctl disable имя_сервиса

Для Alpine необходимо написать init script. Создаем файл touch /etc/init.d/vlmcsd и раздаем на него права chown root:root /etc/init.d/vlmcsd и chmod 755 /etc/init.d/vlmcsd. Добавляем в него такие строчки:

#!/sbin/openrc-run
name="VLMCSD"
description="Microsoft KMS Server"
command="/opt/vlmcsd/vlmcsd"
command_args="-i /opt/vlmcsd/vlmcsd.ini"
depend() {
need net
}

Можно запускать service vlmcsd start и проверить статус service vlmcsd status. Статус запуска должен быть started. Так же можно проверить статус порта netstat -tunlp | grep vlmcsd.

Сервер KMS запущен, осталось рассказать клиентам куда ходить им за активацией. В случае наличии в организации DNS сервера необходимо будет для начала создать A запись указывающую на IP адрес KMS сервера. Далее необходимо в зоне прямого просмотра создать SRV запись с названием сервиса _VLMCS, протоколом _tcp, номером порта 1688 и указать FQDN сервера KMS.

При наличии DNS сервера и записи, клиенты начнут запрашивать активацию на KMS сервере. Для активации на клиентах должен быть установлен GVLK ключ.

Для Windows ключ устанавливается командой slmgr /ipk GVLK_KEY.

Для Office необходимо в директории с установленным Office (например C:\Program Files\Microsoft Office\Office16) запустить cscript ospp.vbs /inpkey:GVLK_KEY.

Для ручного указания KMS сервера на клиенте для Windows необходимо ввести команду slmgr /skms KMS_SRV:Port.

Для Office команда будет следующая script ospp.vbs /sethst:KMS_SRV /setprt:Port.

Ну и проверить статус активации на клиенте для Windows slmgr /dlv,для Office cscript ospp.vbs /dstatus.

GVLK ключи для Windows корпорация Microsoft выкладывает в свободном доступе, как и для Office 2016/2019/2021. Для Office 2010/2013 ключей GVLK я на сайтах Microsoft не нашел поэтому выложу здесь.

Office 2010 GVLK:
Office Professional Plus 2010 VYBBJ-TRJPB-QFQRF-QFT4D-H3GVB
Office Standard 2010 V7QKV-4XVVR-XYV4D-F7DFM-8R6BM
Office Home and Business 2010 D6QFG-VBYP2-XQHM7-J97RH-VVRCK
Project Professional 2010 YGX6F-PGV49-PGW3J-9BTGG-VHKC6
Project Standard 2010 4HP3K-88W3F-W2K3D-6677X-F9PGB
Visio Premium 2010 D9DWC-HPYVV-JGF4P-BTWQB-WX8BJ
Visio Professional 2010 7MCW8-VRQVK-G677T-PDJCM-Q8TCP
Visio Standard 2010 767HD-QGMWX-8QTDB-9G3R2-KHFGJ
Access 2010 V7Y44-9T38C-R2VJK-666HK-T7DDX
Excel 2010 H62QG-HXVKF-PP4HP-66KMR-CW9BM
InfoPath 2010 K96W8-67RPQ-62T9Y-J8FQJ-BT37T
OneNote 2010 Q4Y4M-RHWJM-PY37F-MTKWH-D3XHX
Outlook 2010 7YDC2-CWM8M-RRTJC-8MDVC-X3DWQ
PowerPoint 2010 RC8FX-88JRY-3PF7C-X8P67-P4VTT
Publisher 2010 BFK7F-9MYHM-V68C7-DRQ66-83YTP
SharePoint Workspace 2010 QYYW6-QP4CB-MBV6G-HYMCJ-4T3J4
Word 2010 HVHB3-C6FV7-KQX9W-YQG79-CRY7T

Office 2013 GVLK:
Office 2013 Professional Plus YC7DK-G2NP3-2QQC3-J6H88-GVGXT
Office 2013 Standard KBKQT-2NMXY-JJWGP-M62JB-92CD4
Project 2013 Professional FN8TT-7WMH6-2D4X9-M337T-2342K
Project 2013 Standard 6NTH3-CW976-3G3Y2-JK3TX-8QHTT
Visio 2013 Professional C2FG9-N6J68-H8BTJ-BW3QX-RM3B3
Visio 2013 Standard J484Y-4NKBF-W2HMG-DBMJC-PGWR7
Access 2013 NG2JY-H4JBT-HQXYP-78QH9-4JM2D
Excel 2013 VGPNG-Y7HQW-9RHP7-TKPV3-BG7GB
InfoPath 2013 DKT8B-N7VXH-D963P-Q4PHY-F8894
Lync 2013 2MG3G-3BNTT-3MFW9-KDQW3-TCK7R
OneNote 2013 TGN6P-8MMBC-37P2F-XHXXK-P34VW
Outlook 2013 QPN8Q-BJBTJ-334K3-93TGY-2PMBT
PowerPoint 2013 4NT99-8RJFH-Q2VDH-KYG2C-4RD4F
Publisher 2013 PN2WF-29XG2-T9HJ7-JQPJR-FCXK4
Word 2013 6Q7VD-NX8JD-WJ2VH-88V73-4GBJ7

На данный момент таким образом у меня в организации активируются Windows 7/10, Server 2008/2012/2019, Office 2010/2016. Попытки активации можно посмотреть в логе /var/log/vlmcsd.log.
Если заглянуть в каталог с распакованным vlmcsd, то там есть каталог floppy, в котором находится файл образ загрузочной дискеты floppy144-2.fvd. Дискеты конечно уже редкость, но сам факт того что сервер активации продуктов Microsoft умещается на дискетку стоит похвалы. Так же есть уже готовый докер с vlmcsd, если кому то хочется быстренько развернуть KMS сервер.

Мониторинг дисков используя arcconf

Для начала нужно убедиться, что у нас именно Adaptec AAC-Raid

root@s05:~# lspci | grep -i raid
04:00.0 RAID bus controller: Adaptec AAC-RAID (Rocket) (rev 02)

Вывод может быть и такого типа

RAID bus controller [0104]: Adaptec AAC-RAID
RAID bus controller [0104]: Dell PowerEdge Expandable RAID Controller 3/Di
RAID bus controller [0104]: Adaptec AAC-RAID (Rocket)

Следующим шагом нужно установить opensource утилиту arcconf с моего любимого репозитория.

root@s05:~#echo 'deb http://hwraid.le-vert.net/ubuntu precise main' > /etc/apt/sources.list.d/raid.list
root@s05:~#wget -O - http://hwraid.le-vert.net/debian/hwraid.le-vert.net.gpg.key | sudo apt-key add -
root@s05:~#apt-get update
root@s05:~#apt-get install arcconf

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

root@s05:~#arcconf GETCONFIG 1
Controllers found: 1
----------------------------------------------------------------------
Controller information
----------------------------------------------------------------------
   Controller Status                        : Optimal
   Channel description                      : SAS/SATA
   Controller Model                         : IBM ServeRAID 8k
   Controller Serial Number                 : 11AE500
   Physical Slot                            : 0
   Installed memory                         : 256 MB
   Copyback                                 : Disabled
   Background consistency check             : Enabled
   Automatic Failover                       : Enabled
   Stayawake period                         : Disabled
   Spinup limit internal drives             : 0
   Spinup limit external drives             : 0
   Defunct disk drive count                 : 0
   Logical devices/Failed/Degraded: 2/0/0
   --------------------------------------------------------
   Controller Version Information
   --------------------------------------------------------
   BIOS                                     : 5.2-0 (11835)
   Firmware                                 : 5.2-0 (11835)
   Driver                                   : 1.2-0 (29801)
   Boot Flash                               : 5.1-0 (11835)
   --------------------------------------------------------
   Controller Battery Information
   --------------------------------------------------------
   Status                                   : Optimal
   Over temperature                         : No
   Capacity remaining                       : 100 percent
   Time remaining (at current draw)         : 4 days, 15 hours, 11 minutes
----------------------------------------------------------------------
Logical device information
----------------------------------------------------------------------
Logical device number 0
   Logical device name                      : OS
   RAID level                               : 1
   Status of logical device                 : Optimal
   Size                                     : 953690 MB
   Read-cache mode                          : Enabled
   Write-cache mode                         : Enabled (write-back)
   Write-cache setting                      : Enabled (write-back) when protected by
attery/ZMM
   Partitioned                              : Yes
   Protected by Hot-Spare                   : No
   Bootable                                 : Yes
   Failed stripes                           : No
   Power settings                           : Disabled
   --------------------------------------------------------
   Logical device segment information
   --------------------------------------------------------
   Segment 0                                : Present
Controller:1,Enclosure:0,Slot:0) 9WK1J5H8
   Segment 1                                : Present
Controller:1,Enclosure:0,Slot:1) 9WK5S550
Logical device number 1
   Logical device name                      : DATA
   RAID level                               : 5
   Status of logical device                 : Optimal
   Size                                     : 2861090 MB
   Stripe-unit size                         : 256 KB
   Read-cache mode                          : Enabled
   Write-cache mode                         : Enabled (write-back)
   Write-cache setting                      : Enabled (write-back) when protected by
attery/ZMM
   Partitioned                              : Yes
   Protected by Hot-Spare                   : No
   Bootable                                 : No
   Failed stripes                           : No
   Power settings                           : Disabled
   --------------------------------------------------------
   Logical device segment information
   --------------------------------------------------------
   Segment 0                                : Present
Controller:1,Channel:0,Device:2)
   Segment 1                                : Present
Controller:1,Enclosure:0,Slot:3) 9WK1J37S
   Segment 2                                : Present
Controller:1,Enclosure:0,Slot:4) 9WK0KN2E
   Segment 3                                : Present
Controller:1,Enclosure:0,Slot:5) 9WK1J547
----------------------------------------------------------------------
Physical Device information
----------------------------------------------------------------------
      Device #0
         Device is a Hard drive
         State                              : Online
         Supported                          : Yes
         Transfer Speed                     : SAS 3.0 Gb/s
         Reported Channel,Device(T:L)       : 0,0(0:0)
         Reported Location                  : Enclosure 0, Slot 0
         Reported ESD(T:L)                  : 2,0(0:0)
         Vendor                             : IBM-ESXS
         Model                              : ST31000424SS
         Firmware                           : BC21
         Serial number                      : 9WK1J5H8
         World-wide name                    : 5000C50021389DDC
         Size                               : 953869 MB
         Write Cache                        : Enabled (write-back)
         FRU                                : 49Y1880
         S.M.A.R.T.                         : No
         S.M.A.R.T. warnings                : 0
      Device #1
         Device is a Hard drive
         State                              : Online
         Supported                          : Yes
         Transfer Speed                     : SAS 3.0 Gb/s
         Reported Channel,Device(T:L)       : 0,1(1:0)
         Reported Location                  : Enclosure 0, Slot 1
         Reported ESD(T:L)                  : 2,0(0:0)
         Vendor                             : IBM-ESXS
         Model                              : ST31000424SS
         Firmware                           : BC29
         Serial number                      : 9WK5S550
         World-wide name                    : 5000C5004164ABFC
         Size                               : 953869 MB
         Write Cache                        : Enabled (write-back)
         FRU                                : 49Y1880
         S.M.A.R.T.                         : No
         S.M.A.R.T. warnings                : 0
      Device #2
         Device is a Hard drive
         State                              : Online
         Supported                          : Yes
         Transfer Speed                     : SAS 3.0 Gb/s
         Reported Channel,Device(T:L)       : 0,2(2:0)
         Vendor                             : IBM-ESXS
         Model                              : ST31000424SS
         Firmware                           : BC21
         World-wide name                    : 5000C50021388F60
         Size                               : 953869 MB
         Write Cache                        : Enabled (write-back)
         FRU                                : None
         S.M.A.R.T.                         : No
         S.M.A.R.T. warnings                : 0
      Device #3
         Device is a Hard drive
         State                              : Online
         Supported                          : Yes
         Transfer Speed                     : SAS 3.0 Gb/s
         Reported Channel,Device(T:L)       : 0,3(3:0)
         Reported Location                  : Enclosure 0, Slot 3
         Reported ESD(T:L)                  : 2,0(0:0)
         Vendor                             : IBM-ESXS
         Model                              : ST31000424SS
         Firmware                           : BC21
         Serial number                      : 9WK1J37S
         World-wide name                    : 5000C5002138E354
         Size                               : 953869 MB
         Write Cache                        : Enabled (write-back)
         FRU                                : 49Y1880
         S.M.A.R.T.                         : No
         S.M.A.R.T. warnings                : 0
      Device #4
         Device is a Hard drive
         State                              : Online
         Supported                          : Yes
         Transfer Speed                     : SAS 3.0 Gb/s
         Reported Channel,Device(T:L)       : 0,4(4:0)
         Reported Location                  : Enclosure 0, Slot 4
         Reported ESD(T:L)                  : 2,0(0:0)
         Vendor                             : IBM-ESXS
         Model                              : ST31000424SS
         Firmware                           : BC21
         Serial number                      : 9WK0KN2E
         World-wide name                    : 5000C5002103D428
         Size                               : 953869 MB
         Write Cache                        : Enabled (write-back)
         FRU                                : 49Y1880
         S.M.A.R.T.                         : No
         S.M.A.R.T. warnings                : 0
      Device #6
         Device is an Enclosure services device
         Reported Channel,Device(T:L)       : 2,0(0:0)
         Enclosure ID                       : 0
         Type                               : SES2
         Vendor                             : IBM-ESXS
         Model                              : VSC7160
         Firmware                           : 1.06
         Status of Enclosure services device
Command completed successfully.

Из всего полученного вывода нам нужны только такие параметра как состояние контроллера (Controller Status), статус батареи BBU (Controller Battery Information), статус логических дисковых масивов (Status of logical device) и статус каждого физического диска (Device #*). Для этого я написал маленький скрипт, подобный скрипту в предыдущей статье.

#!/bin/bash
ERROR_COUNT=0
LOG="/tmp/aacraid.log"
arcconf GETCONFIG 1 > $LOG
if [ "$?" -ne "0" ]
then
ERROR_STR="Cannot write to log"
let "ERROR_COUNT += 1"
fi
CONTROLLER=cat $LOG | grep -E 'Controller Status' | awk '{ print $4 }'
BATTERY=cat $LOG | grep -A 2 'Controller Battery Information' | grep Status | awk '{print $3}'
LOGICAL_DEVICE=cat $LOG | grep -E 'Status of logical device' | awk '{print $6}'
PHISICAL_DEVICE=cat $LOG | grep -A 2 -E 'Device #[0-9]' | grep State | awk '{print $3}'
get_status() {
while read line ; do
if [ -n "$line" ]
then
if [ "$line" = "Optimal" ] || [ "$line" = "Online" ]
then
echo "Test result is OK" > /dev/null
else
#echo "Test result is FAIL"
ERROR_STR="Some poblem with ACC-raid. Please check $LOG file
"
let "ERROR_COUNT += 1"
fi
fi
done <<< "$1"
}
get_status "${CONTROLLER}"
get_status "${BATTERY}"
get_status "${LOGICAL_DEVICE}"
get_status "${PHISICAL_DEVICE}"
.
if [ -n "$1" ] && [ "$1" = "log" ]
then
echo ${ERROR_STR}
echo "Controller Status is ${CONTROLLER}"
echo "Controller Battery Status is ${BATTERY}"
echo "Status of LDs are ${LOGICAL_DEVICE}"
echo "Status of PDs are:" && cat $LOG | grep -A 2 -E 'Device #[0-9]'
else
echo ${ERROR_COUNT}
fi

Опишу немного данный скрипт. Сначала мы сохраняем всю информацию о здоровье контроллера в файл /tmp/aacraid.log. Далее вытаскиваем значение статуса контроллера, батареи, логических и физических дисков. В функции get_status перебираются все полученные значения и сравниваются со статусами Optimal и Online. Если значения отличны от нормальных, значит есть проблема и число ошибок растет. Если скрипт запустить без аргументов, то мы получим число ошибок, если добавить аргумент log – узнаем с чем именно у нас проблемы.
Проверяем.

root@s05:~# ./aacraid.sh
0
root@s05:~# ./aacraid.sh log
Controller Status is Optimal
Controller Battery Status is Optimal
Status of LDs are
Optimal
Optimal
Status of PDs are:
      Device #0
         Device is a Hard drive
         State                              : Online
--
      Device #1
         Device is a Hard drive
         State                              : Online
--
      Device #2
         Device is a Hard drive
         State                              : Online
--
      Device #3
         Device is a Hard drive
         State                              : Online
--
      Device #4
         Device is a Hard drive
         State                              : Online
--
      Device #5
         Device is a Hard drive
         State                              : Online

Полезные команды утилиты arcconf

# Получить информацию только об адаптере(включая батарею и прошивку)
ARCCONF GETCONFIG 1 AD
# Получить информацию только о логических устройствах
ARCCONF GETCONFIG 1 LD
# Получить информацию только о логическом устройстве с номером 0
ARCCONF GETCONFIG 1 LD 0
# Получить информацию только о физических устройствах
ARCCONF GETCONFIG 1 PD
# Получить информацию только о логических устройствах
ARCCONF GETCONFIG 1 LD
# Поставить/удалить Secure Erase пароль на диск с каналом 0 и ID 0
# Узнать нужны канал и ID диска можно так - arcconf GETCONFIG 1 PD | grep 'Reported hannel,Device'
ARCCONF ATAPASSWORD 1 SET uR8ryx 0 1
ARCCONF ATAPASSWORD 1 CLEAR uR8ryx 0 1
# Создание логического диска с размером блока 64КБ(STRIPESIZE 64) с максимально допустимым размером(MAX), с нулевым рейдом (RAID# = 0) состоящим из дисков (CHANNEL# DRIVE# = 0 1, 0 2, 0 3) без задания лишних вопросов (NOPROMPT)
ARCCONF CREATE 1 LOGICALDRIVE STRIPESIZE 64 MAX 0 0 1 0 2 0 3 NOPROMPT
# Проверка целостности контроллера с номером 1 каждые 30 дней
ARCCONF DATASCRUB 1 PERIOD 30
# Выключить проверку целостности
ARCCONF DATASCRUB 1 OFF
# Удалить логические устройства 1,2 и 3
ARCCONF DELETE 1 LOGICALDRIVE 1 2 3
# Получить лог по ошибках дисков (DEVICE), по умерших устройствах (DEAD), по последних событиях (EVENT) и статистику использования контроллера (STATS) в читабельном формате (Tabular)
ARCCONF GETLOGS 1 DEVICE Tabular
ARCCONF GETLOGS 1 DEAD Tabular
ARCCONF GETLOGS 1 EVENT Tabular
ARCCONF GETLOGS 1 STATS Tabular
# Засветить LED к котором подсоединены логические или физические диски контроллера с номером 1
ARCCONF IDENTIFY 1 DEVICE 0 0
ARCCONF IDENTIFY 1 DEVICE 0 1
ARCCONF IDENTIFY 1 ALL
ARCCONF IDENTIFY 1 LOGICALDRIVE 0
ARCCONF IDENTIFY 1 LOGICALDRIVE 1
# Установка режима кэширования
# Для логических устройств есть режимы
#• RON - read cache on
#• ROFF - read cache off
#• WT - write through disabled
#• WB - write back enabled
#• WBB - write back enabled (when protected by battery or flash backup module)
# Для физических устройств
#• WT - write through disabled
#• WB - write back enabled
ARCCONF SETCACHE LOGICALDRIVE 1 RON
ARCCONF SETCACHE DEVICE 0 0 WB

Добавление диска LVM в ProxMox

Рассмотрим два варианта добавления физических дисков в гипервизоре Proxmox.

После физического подключения диска к серверу необходимо получить информацию об аппаратной части в Proxmox, а точнее проверить наличие диска (рис.1). Чтобы узнать информацию о всех блочных устройствах воспользуемся командой «lsblk»

1. Создаем раздел на новом диске (В первый раз будет предложено создать файловую систему gpt):

cfdisk /dev/sdb

> New -> (Выбираем объем раздела)

> Primary — Выбираем тип раздела

> Write -> «yes» — Сохраняем настройки (рис.4)

> Quit

2. Форматируем новый раздел в формат «ext4»

mkfs.ext4 /dev/sdb1

3. Чтобы подключить диск, создадим новую папку (можно задать любое имя папки и точку монтирования, мы выбрали «SATA2»): 

mkdir /var/lib/SATA2

4. Монтируем диск в новую папку: 

mount -t ext4 /dev/sdb1 /var/lib/SATA2/

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

nano /etc/fstab

6. Добавляем следующую строку в ваш файл fstab: 

/dev/sdb1 /var/lib/SATA2/ ext4 defaults,errors=remount-ro 0 1

7. Подключаемся к гипервизору через web-интерфейс. Чтобы добавить новую директорию, проходим по пути: Datacenter> Storage> Add> Directory (рис.5).  В открывшемся окне (рис.6), указываем следующие параметры: «ID» — имя хранилища, «Directory» — путь к новой папке, «Content» — что будет храниться на новом диске.

Рассмотрим второй вариант подключения диска в качестве LVM (LVM-thin) менеджер логических томов в области нового диска, который может хранить образы дисков виртуальных машин и контейнеров.

Повторяем действия «1.» и «2.» из начала этой статьи

3. Создаем том, следующей командой: 

pvcreate /dev/sdb1

4. Создаем группу тома (мы выбрали название «newdrive»): 

vgcreate newdrive /dev/sdb1

5. Теперь добавляем LVM в Proxmox. Проходим по пути: Datacenter> Storage> Add> LVM. В открывшемся окне указываем следующие параметры: «ID» — имя хранилища, «Volume Group» — выбираем «newdrive» (группа тома). В итоге получаем хранилище LVM .

Файлы конфигураций виртуальных машин ProxMox

В ProxMox 5 и 6 файлы конфигурации контейнеров переехали в /etc/pve/lxc.
А файлы конфигураций виртуальных машин в ProxMox 5 лежат в директории /etc/pve/qemu-server/.

Proxmox 2.x

Файлы конфигураций машин qemu лежат в папке:

/etc/pve/nodes/proxmox/qemu-server/

Файлы конфигураций контейнеров OpenVZ лежат в папке:

 /etc/vz/conf/

В этих папках лежат файлы *.conf, а в файлах лежат все параметры виртуальных машин.