По умолчанию корпоративные версии Office, такие как Office LTSC 2021, устанавливаются с универсальным ключом корпоративной лицензии (GVLK). GVLK позволяет Office автоматически обнаруживать и активировать на главном компьютере службы управления ключами (KMS) или инфраструктуре Active Directory.
Если вы переводите компьютер с хост-версии KMS, MAK или розничной версии Windows на клиент KMS, установите соответствующий ключ продукта (GVLK) из списка ниже. Чтобы установить ключ продукта клиента, откройте административную командную строку на клиенте и выполните следующую команду:
slmgr /ipk <product key>
Общие ключи корпоративной лицензии (GVLK)
В следующих таблицах вы найдете GVLK для каждой версии и выпуска Windows. LTSC — это канал долгосрочного обслуживания, в то время как LTSB — это филиал долгосрочного обслуживания.
Windows Server (версии LTSC)
Версия операционной системы
Ключ продукта клиента KMS
Центр обработки данных Windows Server 2022
WX4NM-KYWYW-QJJR4-XV3QB-6VM33
Центр обработки данных Windows Server 2022 Azure Edition
NTBV8-9K7Q8-V27C6-M2BTV-KHMXV
Стандарт Windows Server 2022
VDYBN-27WPP-V4HQT-9VMD4-VMK7H
Windows Server 2022
Версия операционной системы
Ключ продукта клиента KMS
Центр обработки данных Windows Server 2019
WMDGN-G9PQG-XVVXX-R3X43-63DFG
Стандарт Windows Server 2019
N69G4-B89J2-4G8F4-WWYCC-J464C
Основы Windows Server 2019
WVDHN-86M7X-466P6-VHXV7-YY726
Windows Server 2019
Версия операционной системы
Ключ продукта клиента KMS
Центр обработки данных Windows Server 2016
CB7KF-BWN84-R7R2Y-793K2-8XDDG
Стандарт Windows Server 2016
WC2BQ-8NRM3-FDDYY-2BFGV-KHKQY
Windows Server 2016 Essentials
JCKRF-N37P4-C2D82-9YXRT-4M63B
Windows Server 2016
Windows Server (полугодовые версии канала)
Версия операционной системы
Ключ продукта клиента KMS
Центр обработки данных Windows Server
6NMRW-2C8FM-D24W7-TQWMY-CWH2D
Стандарт Windows Server
N2KJX-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 2016
DCPHK-NFMTC-H88MJ-PFHPY-QJ4BJ
Windows 10 Enterprise N LTSB 2016
QFFDN-GRT3P-VKWWX-X7T3R-8B639
Windows 10 LTSB 2015
Более ранние версии Windows Server
Версия операционной системы
Ключ продукта клиента KMS
Центр обработки данных Windows Server
2HXDN-KRXHB-GPYC7-YCKFJ-7FVDG
Стандарт Windows Server
PTXN8-JFHJM-4WC78-MPCBR-9W4KR
Windows Server, версия 1803
Версия операционной системы
Ключ продукта клиента KMS
Центр обработки данных Windows Server
6Y6KB-N82V8-D8CQV-23MJW-BWTG6
Стандарт Windows Server
DPCNP-XQFKJ-BJF7R-FRC8D-GF6G4
Windows Server, версия 1709
Версия операционной системы
Ключ продукта клиента KMS
Стандарт Windows Server 2012 R2
D2N9P-3P6X9-2R39C-7RTCD-MDVJX
Центр обработки данных Windows Server 2012 R2
W3GGN-FT8W3-Y4M27-J84CP-Q3VJ9
Windows Server 2012 R2 Essentials
KNC87-3J2TX-XB4WP-VCPJV-M4FWM
Windows Server 2012 R2
Версия операционной системы
Ключ продукта клиента KMS
Windows Server 2012
BN3D2-R7TKB-3YPBD-8DRP2-27GG4
Windows Server 2012 N
8N2M2-HWPGY-7PGT9-HGDD8-GVGGY
Единый язык Windows Server 2012
2WN2H-YGCQR-KFX6K-CD6TF-84YXQ
Для конкретной страны Windows Server 2012
4K36P-JN4VD-GDC6V-KDT89-DYFKP
Стандарт Windows Server 2012
XC9B7-NBPP2-83J2H-RHMBY-92BT4
Многоточечный стандарт Windows Server 2012
HM7DN-YVMH3-46JC3-XYTG7-CYQJJ
Windows Server 2012 MultiPoint Premium
XNH6W-2V9GX-RGJ4K-Y8X6F-QGJ2G
Центр обработки данных Windows Server 2012
48HP8-DN98B-MYWDG-T2DCC-8W83P
Windows Server 2012
Версия операционной системы
Ключ продукта клиента KMS
Windows Server 2008 R2 Web
6TPJF-RBVHG-WBW2R-86QPH-6RTM4
Windows Server 2008 R2 HPC edition
TT8MH-CG224-D3D7Q-498W2-9QCTX
Стандарт Windows Server 2008 R2
YC6KT-GKW9T-YTKYR-T4X34-R7VHC
Windows Server 2008 R2 Enterprise
489J6-VHDMP-X63PK-3K798-CPX3Y
Центр обработки данных Windows Server 2008 R2
74YFP-3QFB3-KQT8W-PMXWJ-7M648
Windows Server 2008 R2 для систем на базе Itanium
GT63C-RJFQ3-4GMB6-BRFB9-CB83V
Windows Server 2008 R2
Версия операционной системы
Ключ продукта клиента KMS
Windows Web Server 2008
WYR28-R7TFJ-3X2YQ-YCY4H-M249D
Стандарт Windows Server 2008
TM24T-X9RMF-VWXK6-X8JC9-BFGM2
Стандарт Windows Server 2008 без Hyper-V
W7VD6-7JFBR-RX26B-YKQ3Y-6FFFJ
Windows Server 2008 Enterprise
YQGMW-MPWTJ-34KDK-48M3W-X4Q6V
Windows Server 2008 Enterprise без Hyper-V
39BXF-X8Q23-P2WWT-38T2F-G3FPG
Windows Server 2008 HPC
RCTX3-KWVHP-BR6TB-RB6DM-6X7HP
Центр обработки данных Windows Server 2008
7M67G-PC374-GR742-YH8V4-TCBY3
Центр обработки данных Windows Server 2008 без Hyper-V
Для активации корпоративных лицензий 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.
Управление загрузкой сервисов с системой инициализации 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 сервер.
Первой командой нужно вытянуть информацию об контроллере. Эта же команда нам даст всю необходимую информацию о статусе батарее, логических и физических дисках.
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
Рассмотрим два варианта добавления физических дисков в гипервизоре 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, чтобы он автоматически монтировался после перезагрузки компьютера.
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 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, а в файлах лежат все параметры виртуальных машин.
В статье описаны основные моменты использования LVM для организации дисковой системы в Linux. Она поможет как чайникам разобраться с принципами ее работы, так и уже знающим LVM в качестве шпаргалки.
Используемые команды одинаково подойдут как для систем Red Hat / CentOS, так и Debian / Ubuntu.
Уровни абстракции
Работа с томами с помощью LVM происходит на 3-х уровнях абстракции:
Физический уровень (PV). Сначала диск инициализируется командой pvcreate — в начале диска создается дескриптор группы томов. При этом важно заметить, что диск не обязательно должен быть физическим — мы можно отметить на использование обычный раздел диска.
Группа томов (VG). С помощью команды vgcreate создается группа томов из инициализированных на предыдущем этапе дисков.
Логический том (LV). Группы томов нарезаются на логические тома командой lvcreate.
Схематично, уровни можно представить так:
Установка
Для работы с LVM необходима установка одноименной утилиты. В системе Linux она может быть установлена по умолчанию. Но если ее нет, выполняем инструкцию ниже.
Если используем системы на безе deb (Ubuntu, Debian, Mint):
apt-get install lvm2
Если используем системы на безе RPM (Red Hat, CentOS, Fedora):
yum install lvm2
Создание разделов
Рассмотрим пример создания томов из дисков sdb и sdc с помощью LVM.
1. Инициализация
Помечаем диски, что они будут использоваться для LVM:
pvcreate /dev/sdb /dev/sdc
* напомним, что в качестве примера нами используются диски sdb и sdc.
Посмотреть, что диск может использоваться LMV можно командой:
pvdisplay
В нашем случае мы должны увидеть что-то на подобие:
"/dev/sdb" is a new physical volume of "1,00 GiB" --- NEW Physical volume --- PV Name /dev/sdb VG Name PV Size 1,00 GiB Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID rR8qya-eJes-7AC5-wuxv-CT7a-o30m-bnUrWa
"/dev/sdc" is a new physical volume of "1,00 GiB" --- NEW Physical volume --- PV Name /dev/sdc VG Name PV Size 1,00 GiB Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID 2jIgFd-gQvH-cYkf-9K7N-M7cB-WWGE-9dzHIY
* где
PV Name — имя диска.
VG Name — группа томов, в которую входит данный диск (в нашем случае пусто, так как мы еще не добавили его в группу).
PV Size — размер диска.
Allocatable — распределение по группам. Если NO, то диск еще не задействован и его необходимо для использования включить в группу.
PE Size — размер физического фрагмента (экстента). Пока диск не добавлен в группу, значение будет 0.
Total PE — количество физических экстентов.
Free PE — количество свободных физических экстентов.
Allocated PE — распределенные экстенты.
PV UUID — идентификатор физического раздела.
2. Создание групп томов
Инициализированные на первом этапе диски должны быть объединены в группы.
Группа может быть создана:
vgcreate vg01 /dev/sdb /dev/sdc
* где vg01 — произвольное имя создаваемой группы; /dev/sdb, /dev/sdc — наши диски.
Просмотреть информацию о созданных группах можно командой:
vgdisplay
На что мы получим, примерно, следующее:
--- Volume group --- VG Name vg01 System ID Format lvm2 Metadata Areas 2 Metadata Sequence No 1 VG Access read/write VG Status resizable MAX LV 0 Cur LV 0 Open LV 0 Max PV 0 Cur PV 2 Act PV 2 VG Size 1,99 GiB PE Size 4,00 MiB Total PE 510 Alloc PE / Size 0 / 0 Free PE / Size 510 / 1,99 GiB VG UUID b0FAUz-wlXt-Hzqz-Sxs4-oEgZ-aquZ-jLzfKz
* где:
VG Name — имя группы.
Format — версия подсистемы, используемая для создания группы.
Metadata Areas — область размещения метаданных. Увеличивается на единицу с созданием каждой группы.
VG Access — уровень доступа к группе томов.
VG Size — суммарный объем всех дисков, которые входят в группу.
PE Size — размер физического фрагмента (экстента).
Последний этап — создание логического раздела их группы томов командой lvcreate. Ее синтаксис:
lvcreate [опции] <имя группы томов>
Примеры создания логических томов:
lvcreate -L 1G vg01
* создание тома на 1 Гб из группы vg01.
lvcreate -L50 -n lv01 vg01
* создание тома с именем lv01 на 50 Мб из группы vg01.
lvcreate -l 40%VG vg01
* при создании тома используется 40% от дискового пространства группы vg01.
lvcreate -l 100%FREE -n lv01 vg01
* использовать все свободное пространство группы vg01 при создании логического тома. * также можно использовать %PVS — процент места от физического тома (PV); %ORIGIN — размер оригинального тома (применяется для снапшотов).
Посмотрим информацию о созданном томе:
lvdisplay
--- Logical volume --- LV Path /dev/vg01/lv01 LV Name lv01 VG Name vg01 LV UUID 4nQ2rp-7AcZ-ePEQ-AdUr-qcR7-i4rq-vDISfD LV Write Access read/write LV Creation host, time vln.dmosk.local, 2019-03-18 20:01:14 +0300 LV Status available # open 0 LV Size 52,00 MiB Current LE 13 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 8192 Block device 253:2
* где:
LV Path — путь к устройству логического тома.
LV Name — имя логического тома.
VG Name — имя группы томов.
LV UUID — идентификатор.
LV Write Access — уровень доступа.
LV Creation host, time — имя компьютера и дата, когда был создан том.
LV Size — объем дискового пространства, доступный для использования.
Current LE — количество логических экстентов.
Создание файловой системы и монтирование тома
Чтобы начать использовать созданный том, необходимо его отформатировать, создав файловую систему и примонтировать раздел в каталог.
Файловая система
Процесс создания файловой системы на томах LVM ничем не отличается от работы с любыми другими разделами.
Например, для создания файловой системы ext4 вводим:
mkfs.ext4 /dev/vg01/lv01
* vg01 — наша группа томов; lv01 — логический том.
Для создания, например, файловой системы xfs вводим:
mkfs.xfs /dev/vg01/lv01
Монтирование
Как и в случае с файловой системой, процесс монтирования не сильно отличается от разделов, созданных другими методами.
Для разового монтирования пользуемся командой:
mount /dev/vg01/lv01 /mnt
* где /dev/vg01/lv01 — созданный нами логический том, /mnt — раздел, в который мы хотим примонтировать раздел.
Для постоянного монтирования раздела добавляем строку в fstab:
vi /etc/fstab /dev/vg01/lv01 /mnt ext4 defaults 1 2
* в данном примере мы монтируем при загрузке системы том /dev/vg01/lv01 в каталог /mnt; используется файловая система ext4.
Проверяем настройку fstab, смонтировав раздел:
mount -a
Проверяем, что диск примонтирован:
df -hT
Просмотр информации
Разберемся, как получить информацию о дисковых накопителях в системе.
1. Для общего представления дисков, разделов и томов вводим:
* как видим, команда отображает корневое блочное устройство, какие разделы из него сделаны и в какие логические тома организованы из некоторых из разделов.
2. Получить информацию о проинициализированных для LVM дисков:
Кратко:
pvs
Подробно:
pvdisplay pvdisplay /dev/sdb
3. Посмотреть информацию о группах LVM.
Кратко:
vgs
Подробно:
vgdisplay vgdisplay vg01
4. Посмотреть информацию о логических томах можно также двумя способами — краткая информация:
lvs
* команда покажет все логические разделы.
Для более подробной информации о логических томах вводим:
lvdisplay
lvdisplay /dev/vg01/lv01
5. Для поиска всех устройств, имеющих отношение к LVM, вводим:
lvmdiskscan
Увеличение томов
Увеличение размера тома может выполняться с помощью добавления еще одного диска или при увеличении имеющихся дисков (например, увеличение диска виртуальной машины). Итак, процедура выполняется в 4 этапа:
1. Расширение физического тома
Расширение физического раздела можно сделать за счет добавление нового диска или увеличение дискового пространства имеющегося (например, если диск виртуальный).
а) Если добавляем еще один диск.
Инициализируем новый диск:
pvcreate /dev/sdd
* в данном примере мы инициализировали диск sdd.
Проверяем объем физического тома:
pvdisplay
б) Если увеличиваем дисковое пространство имеющегося диска.
Увеличиваем размер физического диска командой:
pvresize /dev/sda
* где /dev/sda — диск, который был увеличен.
Проверяем объем физического тома:
pvdisplay
2. Добавление нового диска к группе томов
Независимо от способа увеличения физического тома, расширяем группу томов командой:
vgextend vg01 /dev/sdd
* данная команда расширит группу vg01 за счет добавленого или расширенного диска sdd.
Результат можно увидеть командой:
vgdisplay
3. Увеличение логического раздела
Выполняется одной командой.
а) все свободное пространство:
lvextend -l +100%FREE /dev/vg01/lv01
* данной командой мы выделяем все свободное пространство группы томов vg01 разделу lv01.
б) определенный объем:
lvextend -L+30G /dev/vg01/lv01
* данной командой мы добавляем 30 Гб от группы томов vg01 разделу lv01.
в) до нужного объема:
lvextend -L500G /dev/vg01/lv01
* данной командой мы доводим наш раздел до объема в 500 Гб.
Результат можно увидеть командой:
lvdisplay
Обратить внимание нужно на опцию LV Size:
... LV Status available # open 1 LV Size <2,99 GiB Current LE 765 ...
4. Увеличение размера файловой системы
Чтобы сама система увидела больший объем дискового пространства, необходимо увеличить размер файловой системы.
Посмотреть используемую файловую систему:
df -T
Для каждой файловой системы существуют свои инструменты.
ext2/ext3/ext4:
resize2fs /dev/vg01/lv01
XFS:
xfs_growfs /dev/vg01/lv01
Reiserfs:
resize_reiserfs /dev/vg01/lv01
Уменьшение томов
Размер некоторый файловых систем, например, XFS уменьшить нельзя. Из положения можно выйти, создав новый уменьшенный том с переносом на него данных и последующим удалением.
LVM также позволяет уменьшить размер тома. Для этого необходимо выполнить его отмонтирование, поэтому для уменьшения системного раздела безопаснее всего загрузиться с Linux LiveCD. Далее выполняем инструкцию ниже.
Отмонтируем раздел, который нужно уменьшить:
umount /mnt
Выполняем проверку диска:
e2fsck -fy /dev/vg01/lv01
Уменьшаем размер файловой системы:
resize2fs /dev/vg01/lv01 500M
Уменьшаем размер тома:
lvreduce -L-500 /dev/vg01/lv01
На предупреждение системы отвечаем y:
WARNING: Reducing active logical volume to 524,00 MiB. THIS MAY DESTROY YOUR DATA (filesystem etc.) Do you really want to reduce vg01/lv01? [y/n]: y
Готово.
Очень важно, чтобы сначала был уменьшен размер файловой системы, затем тома. Также важно не уменьшить размер тома больше, чем файловой системы. В противном случае данные могут быть уничтожены. Перед выполнением операции, обязательно создаем копию важных данных.
Удаление томов
Если необходимо полностью разобрать LVM тома, выполняем следующие действия.
Отмонтируем разделы:
umount /mnt
* где /mnt — точка монтирования для раздела.
Удаляем соответствующую запись из fstab (в противном случае наша система может не загрузиться после перезагрузки):
vi /etc/fstab #/dev/vg01/lv01 /mnt ext4 defaults 1 2
* в данном примере мы не удалили, а закомментировали строку монтирования диска.
Смотрим информацию о логичеких томах:
lvdisplay
Теперь удаляем логический том:
lvremove /dev/vg01/lv01
На вопрос системы, действительно ли мы хотим удалить логических том, отвечаем да (y):
Do you really want to remove active logical volume vg01/lv01? [y/n]: y
* если система вернет ошибку Logical volume contains a filesystem in use, необходимо убедиться, что мы отмонтировали том.
Смотрим информацию о группах томов:
vgdisplay
Удаляем группу томов:
vgremove vg01
Убираем пометку с дисков на использование их для LVM:
pvremove /dev/sd{b,c,d}
* в данном примере мы деинициализируем диски /dev/sdb, /dev/sdc, /dev/sdd.
В итоге мы получим:
Labels on physical volume "/dev/sdb" successfully wiped. Labels on physical volume "/dev/sdc" successfully wiped. Labels on physical volume "/dev/sdd" successfully wiped.
Создание зеркала
С помощью LVM мы может создать зеркальный том — данные, которые мы будем на нем сохранять, будут отправляться на 2 диска. Таким образом, если один из дисков выходит из строя, мы не потеряем свои данные.
Зеркалирование томов выполняется из группы, где есть, минимум, 2 диска.
* как видим, на двух дисках у нас появились разделы по 200 Мб.
Работа со снапшотами
Снимки диска позволят нам откатить состояние на определенный момент. Это может послужить быстрым вариантом резервного копирования. Однако нужно понимать, что данные хранятся на одном и том же физическом носителе, а значит, данный способ не является полноценным резервным копированием.
Создание снапшотов для тома, где уже используется файловая система XFS, имеет некоторые нюансы, поэтому разберем разные примеры.
Создание для не XFS:
lvcreate -L500 -s -n sn01 /dev/vg01/lv01
* данная команда помечает, что 500 Мб дискового пространства устройства /dev/vg01/lv01 (тома lv01 группы vg01) будет использоваться для snapshot (опция -s).
С этого момента все изменения пишутся в vg01-sn01-cow, а vg01-lv01-real фиксируется только для чтения и мы может откатиться к данному состоянию диска в любой момент.
Содержимое снапшота можно смонтировать и посмотреть, как обычный раздел:
mkdir /tmp/snp
Монтирование не XFS:
mount /dev/vg01/sn01 /tmp/snp
Монтирование XFS:
mount -o nouuid,ro /dev/vg01/sn01 /tmp/snp
Для выполнения отката до снапшота, выполняем команду:
lvconvert --merge /dev/vg01/sn01
Импорт диска из другой системы
Если мы перенесли LVM-диск с другого компьютера или виртуальной машины и хотим подключить его без потери данных, то нужно импортировать том.
Если есть возможность, сначала нужно на старом компьютере отмонтировать том и сделать его экспорт:
umount /mnt
* предположим, что диск примонтирован в /mnt.
Деактивируем группу томов:
vgchange -an vg_test
* в данном примере наша группа называется vg_test.
Делаем экспорт:
vgexport vg_test
После переносим диск на новый компьютер.
На новой системе сканируем группы LVM следующей командой:
pvscan
… система отобразит все LVM-тома (подключенные и нет), например:
Предположим, что у нас есть 2 подключенных к серверу диска без таблиц разделов на них. (/dev/sdb и /dev/sdc) Мы хотим создать RAID-1 зеркало с LVM на нем. Также, в качестве OS используется CentOS 7.
RAID
Для управления программным RAID массивом нам понадобится утилита mdadm, установим ее:
/dev/md0 — устройство, которое будет создано (массив).
Создадим таблицу разделов
# fdisk /dev/md0
n — позволит создать новую таблицу разделов.
После этого стоит не забыть про «change a partition’s system id» t, выбираем LVM (8e).
Также, не забудем записать внесенные изменения на диск: w.
LVM
Процесс разбит на несколько этапов описанных ниже: — Создать LVM physical volume — Создать LVM volume group — Cоздать логический раздел — Создать файловую систему на разделе
Создадим LVM physical volume
# pvcreate /dev/md0p1
Создадим LVM volume group
# vgcreate md0_vg /dev/md0p1
Создадим logical volume
# lvcreate -l 100%FREE -n md0_lv md0_vg
Вы можете воспользоваться командой lvs, чтобы получить информация о логическом разделе.
Cоздадим файловую систему на разделе
# mkfs.ext4 /dev/md0_vg/md0_lv
fstab
Чтобы не монтировать каждый раз руками наш раздел, добавим запись о нем в fstab.
Сначала получим UUID раздела следующим образом:
# lsblk -o NAME,UUID
Добавим строку следующего формата в /etc/fstab Вывод будет примерно такой
Где: — <device> — описывает устройство которое будет примонтировано — <dir> — директория в которую будет примонтировано устройство — <type> — файловая система — <options> — опции которые будут переданы в mount — <dump> — нужно ли делать dump файловой системы — <fsck> — определяет порядок в котором fsck будет проверять FS. 0 — отключает проверку
Проверим конфигурацию fstab и примонтируем все разделы указанные в нем:
# mount -a
Выполнив df -h мы должны увидеть, что наш раздел успешно примонирован и им можно пользоваться.
dd if=/dev/sdX of=/dev/null conv=noerr Если диск читается — на нужном диске будет непрерывно гореть лампочка Если диск не читает — перебором по рабочим дискам и методом исключения Кроме того с помощью hdparm можно посмотреть серийный номер дисков
Горизонтальное расширение в Cura позволяет изменять размеры объекта в плоскости XY. Это может повысить точность размеров отпечатков.
В этой статье вы узнаете, как использовать эту настройку в Cura для получения наилучших результатов при печати и когда ее следует применять.
Горизонтальное расширение
Горизонтальное расширение задается в миллиметрах и изменяет модель в плоскости XY. Положительные значения делают объект шире, отрицательные — сужают. Его можно задать для всего объекта, только для первого слоя или для отверстий.
Однако горизонтальное расширение не является простым коэффициентом масштабирования в плоскости XY — для этого предназначена компенсация горизонтальной усадки (подробнее об этом ниже). При горизонтальном расширении каждая точка объекта ведет себя подобно дрожжевому тесту, но без смещения соседних точек. Все точки на плоскости XY растут (или уменьшаются) от своего первоначального местоположения и не перемещаются. Ширина линии остается неизменной.
Горизонтальное расширение первого слоя
Горизонтальное расширение первого слоя работает так же, как и обычное горизонтальное расширение, но оно изменяет только первый слой. Оно расширяет или сжимает первый слой.
Большинство филаментов печатается на подогреваемой печатной пластине. В зависимости от того, насколько высока температура, может возникнуть так называемая «слоновья нога«. Это слишком широкий первый слой, вызванный температурой поверхности печатной пластины. Чаще всего этот эффект относительно невелик и может быть компенсирован отрицательным горизонтальным расширением.
Однако если «слоновья нога» слишком велика и выходит за пределы первого слоя, горизонтальное расширение не поможет вам устранить дефект.
Горизонтальное расширение отверстий
Горизонтальное расширение отверстий в Cura ведет себя так же, как и обычное горизонтальное расширение, но только для вертикальных отверстий в модели. Положительные значения делают отверстия больше, отрицательные — меньше. Все остальные размеры объекта остаются нетронутыми.
Если в остальном вы удовлетворены точностью размеров объекта, но отверстия либо слишком большие, либо слишком маленькие, горизонтальное расширение отверстий в Cura — это именно та настройка, которая оптимизирует результат. Здесь снова применима аналогия с дрожжевым тестом. Отверстия увеличиваются или уменьшаются, но центры отверстий не меняют своего положения под воздействием настройки.
Во время печати отверстий сопло движется по кругу и может тянуть за собой уже напечатанный филамент. Круговое движение немного тянет нить к центру отверстия, делая диаметр отверстия немного меньше. В зависимости от материала, скорости печати и других параметров этот эффект может быть сильнее или слабее.
Это может привести к тому, что точность размеров объекта будет идеальной, но отверстия окажутся слишком маленькими. Если вы точно спроектировали объект, и отверстия важны для его функционирования (например, для винтов или осей), вы можете устранить проблему с помощью расширения горизонтальных отверстий.
Обратите внимание, что Cura довольно щепетильно относится к определению отверстий. Отверстие здесь определяется как непрерывный открытый объем сверху вниз в объекте. Как только у него появляется отверстие сбоку, он больше не считается отверстием, а является внешней оболочкой.
Кроме того, при комбинировании горизонтального расширения отверстий с обычным горизонтальным расширением важно сначала обработать отверстия и только потом применить обычное горизонтальное расширение. Это может привести к поглощению части объекта. Поэтому при использовании этих двух функций всегда будьте внимательны к тому, что происходит с мелкими деталями.
Влияние горизонтального расширения на объект
Горизонтальное расширение и cura увеличивают объект в плоскости XY с обеих сторон на указанное значение. Таким образом, общая ширина увеличивается в два раза.
Если задать горизонтальное расширение 5 мм, то куб с длиной грани 20 мм будет иметь ширину 30 мм в направлениях X и Y. Пять миллиметров добавляются к обоим направлениям. Если вы этого не знаете, то поначалу это может немного смутить, когда вы пытаетесь откалибровать точность размеров с помощью этого и удивляетесь, почему размеры вдруг отличаются в два раза от заданных.
Как активировать горизонтальное расширение?
Горизонтальное расширение находится в Cura в настройках Стенки. Если эта настройка не найдена, ее можно активировать в опциях.
Три параметра горизонтального расширения задаются в миллиметрах. Спецификация относится к осям X и Y. Однако, как уже было описано выше, следует учитывать, что спецификация применяется в обоих направлениях соответствующих осей. Например, если горизонтальное расширение составляет 0,2 мм, объект будет шире на 0,4 мм.
Чтобы предворительно оценить эффект горизонтального расширения перед нарезкой, Cura создает тень вокруг объекта с окончательными размерами. Если вы хотите напечатать сразу несколько объектов, вы можете убедиться, что они не будут мешать друг другу.
Для чего использовать горизонтальное расширение
Горизонтальное расширение в Cura можно использовать для компенсации неточностей размеров в процессе печати, таких как усадка нити во время охлаждения или следование нити в отверстиях. Эта настройка имеет смысл особенно для объектов с механической функцией.
Типичными областями применения, где горизонтальное расширение может помочь, являются, например, шестерни или оси и их подшипники/отверстия. Но даже если вы хотите печатать только декоративные объекты, вы можете улучшить точность размеров для дальнейшего улучшения качества мелких деталей.
Этот способ калибровки точности размеров гораздо изящнее, чем настройка размеров вручную в слайсере или в программе CAD.
Недостатки горизонтального расширения
Негативный эффект горизонтального расширения заключается в том, что детали и отверстия либо увеличиваются, либо проглатываются.
Пример нарезки калибровочного куба с горизонтальным расширением 0 мм, 1 мм и -1 мм. При горизонтальном расширении 1 мм буква «Z» на вершине больше не видна, образовались только два небольших отверстия. Также менее заметны буквы «X» и «Y». При значении -1 мм все буквы стали больше, чем раньше.
Однако этот пример выбран относительно экстремальным для лучшей иллюстрации. Обычно значения горизонтального расширения указываются в долях миллиметра. Если это не так, вам следует сначала позаботиться о калибровке расхода, прежде чем обращаться к горизонтальному расширению или рассмотреть компенсацию усадки для материалов, которые сильно усаживаются (подробнее об этом ниже).
Еще одним недостатком является то, что нужно быть осторожным, если вы хотите печатать несколько объектов одновременно. Если вы расположили объекты очень близко друг к другу для экономии времени печати, они могут наложиться друг на друга из-за горизонтального расширения. Однако, прежде чем нарезать объект, вы можете увидеть окончательное положение больших объектов по теням столкновения на полу. Таким образом, вы сможете предотвратить их перекрытие и катастрофические ошибки при печати.
Горизонтальное расширение или Компенсация усадки
Горизонтальное расширение в Cura увеличивает каждую точку объекта на значение в мм. Компенсация усадки масштабирует объект на процентное значение. Поэтому конечный результат принципиально отличается и подходит для разных объектов.
Компенсация усадки, как следует из названия, используется для материалов, которые усаживаются при охлаждении. Здесь также можно ввести отрицательные значения, что сделает объект меньше, но в большинстве случаев это не имеет смысла. Для компенсации усадки введите процентное значение, превышающее 100%, чтобы объект имел правильные размеры после охлаждения и усадки.
Компенсация усадки делится на три значения. Вы можете указать компенсацию во всех направлениях, только в горизонтальном направлении или только в вертикальном направлении. Из-за особенностей работы 3D-принтеров FDM чаще всего используется только горизонтальная компенсация усадки. Иногда используется комбинация различных значений для горизонтального и вертикального направления.
Поскольку филамент наносится горизонтальными линиями, материал будет усаживаться в основном в горизонтальном направлении. Чем длиннее и прямее линии в соответствующем направлении, тем больше будет усадка в этом измерении. Внутренние механические силы, возникающие при охлаждении, гораздо больше в горизонтальной плоскости, чем в вертикальной.
Поэтому нельзя полагаться на общее поведение материалов при усадке, так как при 3D-печати они ведут себя несколько иначе. Поэтому лист с соответствующей информацией о поведении усадки — это, возможно, лишь приблизительное направление, в котором вы можете скорректировать значение, но никак не гарантия того, что конечный результат будет правильным.
В отличие от горизонтального расширения, Cura перемещает объекты при их масштабировании за счет компенсации усадки. Здесь вам не нужно беспокоиться о том, что объекты наложатся друг на друга. Вы также можете увидеть окончательное расширение объектов перед нарезкой по теням столкновений на земле.
Горизонтальное расширение или Текучесть
Разница между текучестью (скоростью потока) и горизонтальным расширением заключается в том, что размеры объекта не изменяются при изменении текучести (скорости потока) в слайсере. Изменение текучести плохо компенсирует неточности.
При более высокой текучести также будет выдавливаться больше филамента за единицу времени и наоборот. Теоретически, таким образом можно исправить отклонения в размерах. Однако, если скорость потока откалибрована неправильно и отклоняется слишком сильно, это может быстро привести к ошибкам экструзии, таким как отверстия или струна.
Поэтому важно правильно откалибровать расход и только после этого решать другие отклонения размеров другими способами, например горизонтальным расширением или компенсацией усадки. При калибровке текучести цель состоит в том, чтобы толщина стенки испытуемого объекта точно соответствовала теоретическому значению в слайсере.
В соответствии с этим такие эффекты, как усадка определенных материалов, могут быть компенсированы горизонтальным расширением или компенсацией усадки, а не расходом.
Вывод
Горизонтальное расширение в некоторых случаях может быть просто необходимым инструментом для достижения идеальной точности размеров напечатанного объекта. Даже если вы очень хорошо откалибровали профиль Cura для своего 3D-принтера, все равно могут возникнуть определенные эффекты, которые невозможно исправить заранее.
Например, отверстия в реальности обычно немного уже, чем они выглядят в слайсере или CAD-программе. Сопло немного вытягивает горячую нить во время кругового движения и, таким образом, немного тянет ее к центру круга. Именно для этого в Cura предусмотрено расширение горизонтального отверстия.
Но даже если весь объект равномерно деформирован в плоскости XY, эту проблему часто можно решить с помощью горизонтального расширения, и точность размеров может быть идеально выверена.