<?xml version="1.0" encoding="utf-8"?> 
<rss version="2.0"
  xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
  xmlns:atom="http://www.w3.org/2005/Atom">

<channel>

<title>Лайвлупинг, медиапродакшн и все эти ваши компьютеры: заметки с тегом VMware</title>
<link>https://www.batishchev.ru/blog/tags/vmware/</link>
<description>Алексей Батищев. Заметки обо всём, что происходит со мной и окружающим миром</description>
<author></author>
<language>ru</language>
<generator>Aegea 11.4 (v4171)</generator>

<itunes:subtitle>Алексей Батищев. Заметки обо всём, что происходит со мной и окружающим миром</itunes:subtitle>
<itunes:image href="" />
<itunes:explicit></itunes:explicit>

<item>
<title>КЭНК: уменьшаем диск сервера Windows через зеркалирование</title>
<guid isPermaLink="false">68</guid>
<link>https://www.batishchev.ru/blog/all/kenk-disk-shrink-via-mirror/</link>
<pubDate>Thu, 03 Dec 2020 17:42:44 +0300</pubDate>
<author></author>
<comments>https://www.batishchev.ru/blog/all/kenk-disk-shrink-via-mirror/</comments>
<description>
&lt;p&gt;Редкий, но противный кейс: есть сервер на Windows — виртуальная машина  на платформе VMware, у которого нужно уменьшить размер одного из дисков (и размер соответствующего vmdk файла на хранилище). До кучи — сервер нельзя выключать надолго.&lt;/p&gt;
&lt;p&gt;Чаще всего такие ситуации случаются из-за ошибок сайзинга при развёртывании (в том числе, при прогибании на переговорах разработчиков, которым всегда нужно мильён терабайт и триллион ядер этих ваших комплюктеров, чтобы «одинэс быстро работал»), либо когда система выводится из эксплуатации, оставаясь в дремлющем режиме, и потребности  в пространстве у неё снижаются, но убивать полностью её пока нельзя.&lt;/p&gt;
&lt;p&gt;По классике эта задача решается &lt;a href="https://docs.microsoft.com/en-us/sysinternals/downloads/sdelete"&gt;занулением свободного пространства&lt;/a&gt; внутри ОС и последующей &lt;a href="https://kb.vmware.com/s/article/1002019"&gt;миграцией виртуалки с конвертацией в тонкие диски&lt;/a&gt;. Но лично у меня к тонким дискам слишком много претензий, и я стараюсь никогда эту технологию в продакшн не использовать (и никому не советую, кроме случаев совсем уж крайней нужды).&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://www.batishchev.ru/blog/pictures/doughrun.jpg" width="640" height="416" alt="" /&gt;
&lt;div class="e2-text-caption"&gt;Картина неизвестного художника «Админ накидал на датастор виртуалок с тонкими дисками и ушёл в отпуск»&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;В операционках Windows отлично работает софтверное зеркалирование, с помощью которого задачу можно решить надёжно, достаточно быстро и без существенных перерывов в работе сервиса (а чаще всего вообще без них).&lt;/p&gt;
&lt;p&gt;Сейчас КЭНК-мэн займётся вашими дисками, ребята&lt;/p&gt;
&lt;h2&gt;Как сжать системный диск&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.microsoft.com/ru-ru/windows-server/storage/disk-management/shrink-a-basic-volume"&gt;Сжать раздел&lt;/a&gt; стандартными средствами Windows Server до необходимого&lt;/li&gt;
&lt;li&gt;Добавить новый виртуальный диск(и) такого размера как получившийся необходимый размер&lt;/li&gt;
&lt;li&gt;На разделах старого диска (100 мб и системный вместе, остальные если надо — по отдельности) правой кнопкой — добавить зеркало, указать новый диск. Диски преобразуются в динамические и начнётся синхронизация&lt;/li&gt;
&lt;li&gt;В свойствах компьютера установить опции загрузки с вторичного плекса и выбора операционной системы и возможности восстановления при запуске&lt;/li&gt;
&lt;li&gt;Дождаться полной синхронизации зеркальных томов&lt;/li&gt;
&lt;li&gt;Выключить виртуалку. Отключить оригинальные диски от виртуальной машины&lt;/li&gt;
&lt;li&gt;Загрузить сервер, отключить (поломавшееся) зеркалирование&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Как сжать несистемный диск&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.microsoft.com/ru-ru/windows-server/storage/disk-management/shrink-a-basic-volume"&gt;Сжать раздел&lt;/a&gt;  стандартными средствами Windows Server до необходимого&lt;/li&gt;
&lt;li&gt;Добавить новый виртуальный диск(и) такого размера как получившийся необходимый размер&lt;/li&gt;
&lt;li&gt;На разделе старого диска правой кнопкой — добавить зеркало, указать новый диск. Диски преобразуются в динамические и начнётся синхронизация&lt;/li&gt;
&lt;li&gt;Дождаться полной синхронизации зеркальных томов&lt;/li&gt;
&lt;li&gt;Отключить (можно на горячую) оригинальные диски от сервера&lt;/li&gt;
&lt;li&gt;Отключить зеркалирование, указав что пропавшего диска в зеркале больше нет и не будет.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Детали и тонкости&lt;/h2&gt;
&lt;p&gt;Использующие раздел ИС переживают такие операции без проблем, в случае если диск не системный простой сервиса = 0&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://www.batishchev.ru/blog/pictures/2020-12-03-nospace.png" width="708" height="425" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;Иногда всё свободное пространство освободить не получается — диспетчер дисков Windows выдает ошибку «недостаточно свободного места» (There is not enough space available on the disk(s) to complete this operation). Проблема не в месте, а в неперемещаемых файлах, используемых в момент сжатия системой. Решается изучением логов  Event Viewer Windows Logs\Application, где видно что именно мешает, и после соответствующих операций (типа временного отключения мешающего файла подкачки на разделе) раздел скорее всего удастся сжать.&lt;/p&gt;
&lt;p&gt;Слава Роботам!&lt;br /&gt;
КЭНК!&lt;/p&gt;
</description>
</item>

<item>
<title>КЭНК: автоматизация для бесплатного Veeam Backup</title>
<guid isPermaLink="false">54</guid>
<link>https://www.batishchev.ru/blog/all/kenk-avtomatizaciya-dlya-besplatnogo-veeam-backup/</link>
<pubDate>Tue, 10 Nov 2020 20:17:36 +0300</pubDate>
<author></author>
<comments>https://www.batishchev.ru/blog/all/kenk-avtomatizaciya-dlya-besplatnogo-veeam-backup/</comments>
<description>
&lt;p&gt;Прекрасный продукт для резервного копирования в виртуальных средах &lt;a href="https://www.veeam.com/ru/vm-backup-recovery-replication-software.html"&gt;Veeam Backup &amp; Replication&lt;/a&gt; в бесплатной версии содержит ограничения, не позволяющие комфортно использовать его на больших инфраструктурах. Ранее возможности автоматизации были сильно урезаны, в свежих версиях они расширены, но всё равно недостаточны для масштабов, актуальных на моём текущем проекте.&lt;/p&gt;
&lt;p&gt;При этом, где-то в районе 2016 года Veeam включил поддержку PowerCLI, тогда мне попался на одном из тематических ресурсов &lt;a href="https://www.veeam.com/blog/ru/veeam-backup-free-edition-now-with-powershell.html"&gt;скрипт&lt;/a&gt; от сотрудника Veeam Владимира Еремина, позволяющий запускать бэкапы. Ну а там где есть скрипт или API — есть и возможность дальнейшей автоматизации.&lt;/p&gt;
&lt;p&gt;Моя идея проста: добавить в описание ВМ теги, определяющие применённый к машине план резервного копирования. Управляющие скрипты запускаются по планировщику на сервере с Veeam Backup, находят в инфраструктуре по тегам все машины, которым требуется провести копирование в этот раз, и передают эти данные на вход запускающего рк оригинального скрипта.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://www.batishchev.ru/blog/pictures/photo_2020-11-10_15-33-22.jpg" width="365" height="201" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;Со временем управляющий скрипт и оригинал обросли обвязкой (логирование, высылка уведомлений при ошибках, возможность задания путей и целевых СРК), но главная идея не изменилась:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;программируем логику выбора виртуалок в скрипт&lt;/li&gt;
&lt;li&gt;храним привязку вм к планам копирования тегами в их описаниях&lt;/li&gt;
&lt;li&gt;задаем время старта планов копирования планировщиком задач на сервере&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Достоинство решения — стандартные по КЭНК:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;оно бесплатное&lt;/li&gt;
&lt;li&gt;оно эффективно решает задачу максимально штатными средствами (теги хранятся в описаниях машин, расписания — в планировщике задач)&lt;/li&gt;
&lt;li&gt;оно гибкое — ничего не мешает завести несколько серверов с Veeam, вешать на машины несколько тегов и добавлять машины в несколько планов&lt;/li&gt;
&lt;li&gt;оно кастомизируемое — скрипт простой и его можно менять по своему усмотрению&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Основной принципиальный недостаток реализованного решения — задачи резервного копирования из скрипта стартуют по очереди (при том что и сам Veeam и мощности инфраструктуры позволяют пережевать несколько одновременных потоков). Впрочем, даже с таким подходом в окно обслуживания удается уложиться без проблем, а значит усложнять решение незачем, по крайней мере пока.&lt;/p&gt;
&lt;p&gt;велосипед на гитхабе: &lt;a href="https://github.com/alexbatishchev/kenk-backuppo-veeam"&gt;https://github.com/alexbatishchev/kenk-backuppo-veeam&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;КЭНК!&lt;br /&gt;
Слава роботам!&lt;/p&gt;
</description>
</item>

<item>
<title>КЭНК: подменятор дисков для vSphere</title>
<guid isPermaLink="false">52</guid>
<link>https://www.batishchev.ru/blog/all/kenk-podmenyator-diskov-dlya-vsphere/</link>
<pubDate>Sun, 08 Nov 2020 21:23:34 +0300</pubDate>
<author></author>
<comments>https://www.batishchev.ru/blog/all/kenk-podmenyator-diskov-dlya-vsphere/</comments>
<description>
&lt;p&gt;&lt;i&gt;TL;DR на лету подсовываем скриптом жесткие диски виртуалкам на Windows&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Архитектура одной из систем на проекте подразумевает полную сетевую изоляцию — компьютеры пользователей и сервера расположены в отдельной сети и не имеют связи с внешним миром. При этом пользователи обладают низкой компьютерной культурой и активно приносят данные в систему на флешках — а значит мы имеем ненулевую вероятность поймать вредонос, например шифровальщик. В общем, налицо необходимость регулярной доставки обновлений антивируса в систему, и стойкое нежелание делать это вручную. Твой выход, КЭНК-мен!&lt;/p&gt;
&lt;p&gt;Кстати про супергероев. 12 лет назад я работал в классной дружной команде: мы фигачили с такой вовлечённостью и нацеленностью на результат, что совершенно естественным стало желание сдизайнить и заказать для айтишной группы плакаты и магниты на холодильник. Именно с таким ощущением мне с тех пор особенно сильно нравится работать:&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://www.batishchev.ru/blog/pictures/superman-gf@2x.jpg" width="714" height="500" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;После лирического отступления, возвращаемся к подменятору дисков. Так как и в основной и в изолированной системе работают центры администрирования Касперского, строим из подручных средств такой велосипед:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;добавляем по одному дополнительному vmdk диску к каждому серверу с KSC&lt;/li&gt;
&lt;li&gt;включаем опцию на основном сервере KSC, копирующую дубль обновлений на подменный диск&lt;/li&gt;
&lt;li&gt;делаем регулярную задачу на vCenter, стартующую скрипт PowerCLI, который меняет местами эти подменные диски между основным и изолированным KSC&lt;/li&gt;
&lt;li&gt;настраиваем изолированный KSC на забирание обновлений баз из папки на подменном диске&lt;/li&gt;
&lt;li&gt;заодно настраиваем регулярную выгрузки в папку на подменном диске статистики работы и мониторинга ИС&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;В итоге: требование сетевой изоляции соблюдено, базы антивируса с задержкой на 1-2 часа от внешнего мира обновляются автоматически, в мониторинг основой инфраструктуры попадают сведения из изолированной (с допустимым по SLA временем реакции).&lt;/p&gt;
&lt;p&gt;Система вышла уязвимой к снапшотам, так как конфигурацию дисков на ВМ со снимками менять нельзя. Поэтому во время создания резервных копий серверов KSC подмены дисков не происходит. Впрочем накладка этих событий случается достаточно редко и сильно на работу системы не влияет — ничего страшного, переключатся в следующую итерацию.&lt;/p&gt;
&lt;p&gt;Самое сложное в этом велосипеде — подобрать период переключения и времена стартов соответствующих задач на KSC, так как скачивание баз с репозиториев в интернетах происходит далеко не мгновенно (но это отдельная печальная песня). В нашем случае диски меняются местами раз в три часа.&lt;/p&gt;
&lt;p&gt;Пока не решил, стоит ли тут заливать код скрипта на гитхаб, всё же ценность этого кэнк-решения в идее, а реализация довольно тривиальна. Но может заодно с другими выложу как-нибудь.&lt;/p&gt;
&lt;p&gt;КЭНК!&lt;br /&gt;
Слава Роботам!&lt;/p&gt;
</description>
</item>

<item>
<title>Матрёшка — макинтошка</title>
<guid isPermaLink="false">46</guid>
<link>https://www.batishchev.ru/blog/all/matryoshka-makintoshka/</link>
<pubDate>Wed, 12 Feb 2020 16:03:52 +0300</pubDate>
<author></author>
<comments>https://www.batishchev.ru/blog/all/matryoshka-makintoshka/</comments>
<description>
&lt;p&gt;Возникла необходимость проверить кое-что в среде MacOS (тестовый режим, никакого нарушения лицензионного соглашения). Оригинальной железки или просто свободного компа для развёртывания не нашлось, зато были мощности в виртуальной среде и немного изобретательности.&lt;/p&gt;
&lt;p&gt;В итоге работает такая схема:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Вот блейд-сервер железный могучий многолезвийный в ЦОДе&lt;/li&gt;
&lt;li&gt;Вот на одном из лезвий vSphere красивая да отказоустойчивая&lt;/li&gt;
&lt;li&gt;Вот в той висфере виртуалка, а в ней винда десятая до последней версии проапдейченная&lt;/li&gt;
&lt;li&gt;Вот в той виртуалке VMware Workstation триальная тридцатидневная&lt;/li&gt;
&lt;li&gt;Вот в том воркстейшене ещё одна виртуалка, а в ней MacOS Catalina тёмнотемная&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://www.batishchev.ru/blog/pictures/camphoto_959030623.jpeg" width="1024" height="753" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;Ставить макось напрямую в vSphere было нельзя, так как это потребовало бы патча виртуальной среды сторонним софтом. Производительность решения не была важна, а весь основной функционал ОС в таком варианте завёлся и работает, так что метод можно считать успешным.&lt;/p&gt;
&lt;p&gt;По развёртыванию мака в VMware Workstation много статей в интернетах, я опирался на эти:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://applehint.com/t/how-to-create-bootable-macos-catalina-iso-and-dmg-images-in-both-macos-and-windows/1497"&gt;как скачать образ системы и сделать из него загрузочный ISO&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://brofox86.github.io/macos-plus/ustanovka-macos-na-virtualnuyu-mashinu.html"&gt;как настроить виртуальную машину и поставить в неё MacOS&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/paolo-projects/unlocker/releases"&gt;патчик для VMware Workstation&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
</item>

<item>
<title>пост из гуглоплюса от 16 июня 2014 12:14</title>
<guid isPermaLink="false">941</guid>
<link>https://www.batishchev.ru/blog/all/2014-06-16-12-14-00/</link>
<pubDate>Mon, 16 Jun 2014 11:14:00 +0300</pubDate>
<author></author>
<comments>https://www.batishchev.ru/blog/all/2014-06-16-12-14-00/</comments>
<description>
&lt;p&gt;Взяли в отдел админа — фаната футурамы. Теперь у нас есть висфера с автодеплоем и дистрибьютед-свитчами.﻿&lt;/p&gt;
</description>
</item>

<item>
<title>Приехала книжечка, новенькая, с пылу с жару</title>
<guid isPermaLink="false">795</guid>
<link>https://www.batishchev.ru/blog/all/2012-06-01-12-59-00/</link>
<pubDate>Fri, 01 Jun 2012 11:59:00 +0300</pubDate>
<author></author>
<comments>https://www.batishchev.ru/blog/all/2012-06-01-12-59-00/</comments>
<description>
&lt;p&gt;Приехала книжечка, новенькая, с пылу с жару. Щас узнаем, чего там буржуины напихали в новую версию.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://maps.google.com?ll=55.657787,37.60325&amp;amp;q=55.657787,37.60325"&gt;Болотниковская ул.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;оригинальный пост сопровождён &lt;a href="http://maps.google.com?ll=55.657787,37.60325&amp;q=55.657787,37.60325"&gt;геометкой&lt;/a&gt;&lt;/i&gt;&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://www.batishchev.ru/blog/pictures/res.img_2012_06_01_1338537544269@2x.jpg" width="359" height="600" alt="" /&gt;
&lt;/div&gt;
</description>
</item>


</channel>
</rss>