{
    "version": "https:\/\/jsonfeed.org\/version\/1.1",
    "title": "Лайвлупинг, медиапродакшн и все эти ваши компьютеры: заметки с тегом VMware",
    "_rss_description": "Алексей Батищев. Заметки обо всём, что происходит со мной и окружающим миром",
    "_rss_language": "ru",
    "_itunes_email": "",
    "_itunes_categories_xml": "",
    "_itunes_image": "",
    "_itunes_explicit": "",
    "home_page_url": "https:\/\/www.batishchev.ru\/blog\/tags\/vmware\/",
    "feed_url": "https:\/\/www.batishchev.ru\/blog\/tags\/vmware\/json\/",
    "icon": "https:\/\/www.batishchev.ru\/blog\/pictures\/userpic\/userpic@2x.jpg?1604346823",
    "authors": [
        {
            "name": "Алексей Батищев",
            "url": "https:\/\/www.batishchev.ru\/blog\/",
            "avatar": "https:\/\/www.batishchev.ru\/blog\/pictures\/userpic\/userpic@2x.jpg?1604346823"
        }
    ],
    "items": [
        {
            "id": "68",
            "url": "https:\/\/www.batishchev.ru\/blog\/all\/kenk-disk-shrink-via-mirror\/",
            "title": "КЭНК: уменьшаем диск сервера Windows через зеркалирование",
            "content_html": "<p>Редкий, но противный кейс: есть сервер на Windows — виртуальная машина  на платформе VMware, у которого нужно уменьшить размер одного из дисков (и размер соответствующего vmdk файла на хранилище). До кучи — сервер нельзя выключать надолго.<\/p>\n<p>Чаще всего такие ситуации случаются из-за ошибок сайзинга при развёртывании (в том числе, при прогибании на переговорах разработчиков, которым всегда нужно мильён терабайт и триллион ядер этих ваших комплюктеров, чтобы «одинэс быстро работал»), либо когда система выводится из эксплуатации, оставаясь в дремлющем режиме, и потребности  в пространстве у неё снижаются, но убивать полностью её пока нельзя.<\/p>\n<p>По классике эта задача решается <a href=\"https:\/\/docs.microsoft.com\/en-us\/sysinternals\/downloads\/sdelete\">занулением свободного пространства<\/a> внутри ОС и последующей <a href=\"https:\/\/kb.vmware.com\/s\/article\/1002019\">миграцией виртуалки с конвертацией в тонкие диски<\/a>. Но лично у меня к тонким дискам слишком много претензий, и я стараюсь никогда эту технологию в продакшн не использовать (и никому не советую, кроме случаев совсем уж крайней нужды).<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/www.batishchev.ru\/blog\/pictures\/doughrun.jpg\" width=\"640\" height=\"416\" alt=\"\" \/>\n<div class=\"e2-text-caption\">Картина неизвестного художника «Админ накидал на датастор виртуалок с тонкими дисками и ушёл в отпуск»<\/div>\n<\/div>\n<p>В операционках Windows отлично работает софтверное зеркалирование, с помощью которого задачу можно решить надёжно, достаточно быстро и без существенных перерывов в работе сервиса (а чаще всего вообще без них).<\/p>\n<p>Сейчас КЭНК-мэн займётся вашими дисками, ребята<\/p>\n<h2>Как сжать системный диск<\/h2>\n<ul>\n<li><a href=\"https:\/\/docs.microsoft.com\/ru-ru\/windows-server\/storage\/disk-management\/shrink-a-basic-volume\">Сжать раздел<\/a> стандартными средствами Windows Server до необходимого<\/li>\n<li>Добавить новый виртуальный диск(и) такого размера как получившийся необходимый размер<\/li>\n<li>На разделах старого диска (100 мб и системный вместе, остальные если надо — по отдельности) правой кнопкой — добавить зеркало, указать новый диск. Диски преобразуются в динамические и начнётся синхронизация<\/li>\n<li>В свойствах компьютера установить опции загрузки с вторичного плекса и выбора операционной системы и возможности восстановления при запуске<\/li>\n<li>Дождаться полной синхронизации зеркальных томов<\/li>\n<li>Выключить виртуалку. Отключить оригинальные диски от виртуальной машины<\/li>\n<li>Загрузить сервер, отключить (поломавшееся) зеркалирование<\/li>\n<\/ul>\n<h2>Как сжать несистемный диск<\/h2>\n<ul>\n<li><a href=\"https:\/\/docs.microsoft.com\/ru-ru\/windows-server\/storage\/disk-management\/shrink-a-basic-volume\">Сжать раздел<\/a>  стандартными средствами Windows Server до необходимого<\/li>\n<li>Добавить новый виртуальный диск(и) такого размера как получившийся необходимый размер<\/li>\n<li>На разделе старого диска правой кнопкой — добавить зеркало, указать новый диск. Диски преобразуются в динамические и начнётся синхронизация<\/li>\n<li>Дождаться полной синхронизации зеркальных томов<\/li>\n<li>Отключить (можно на горячую) оригинальные диски от сервера<\/li>\n<li>Отключить зеркалирование, указав что пропавшего диска в зеркале больше нет и не будет.<\/li>\n<\/ul>\n<h2>Детали и тонкости<\/h2>\n<p>Использующие раздел ИС переживают такие операции без проблем, в случае если диск не системный простой сервиса = 0<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/www.batishchev.ru\/blog\/pictures\/2020-12-03-nospace.png\" width=\"708\" height=\"425\" alt=\"\" \/>\n<\/div>\n<p>Иногда всё свободное пространство освободить не получается — диспетчер дисков Windows выдает ошибку «недостаточно свободного места» (There is not enough space available on the disk(s) to complete this operation). Проблема не в месте, а в неперемещаемых файлах, используемых в момент сжатия системой. Решается изучением логов  Event Viewer Windows Logs\\Application, где видно что именно мешает, и после соответствующих операций (типа временного отключения мешающего файла подкачки на разделе) раздел скорее всего удастся сжать.<\/p>\n<p>Слава Роботам!<br \/>\nКЭНК!<\/p>\n",
            "date_published": "2020-12-03T17:42:44+03:00",
            "date_modified": "2020-12-03T22:12:24+03:00",
            "tags": [
                "VMware",
                "все эти ваши компьютеры",
                "КЭНК"
            ],
            "image": "https:\/\/www.batishchev.ru\/blog\/pictures\/doughrun.jpg",
            "_date_published_rfc2822": "Thu, 03 Dec 2020 17:42:44 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "68",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": [
                    "https:\/\/www.batishchev.ru\/blog\/pictures\/doughrun.jpg",
                    "https:\/\/www.batishchev.ru\/blog\/pictures\/2020-12-03-nospace.png"
                ]
            }
        },
        {
            "id": "54",
            "url": "https:\/\/www.batishchev.ru\/blog\/all\/kenk-avtomatizaciya-dlya-besplatnogo-veeam-backup\/",
            "title": "КЭНК: автоматизация для бесплатного Veeam Backup",
            "content_html": "<p>Прекрасный продукт для резервного копирования в виртуальных средах <a href=\"https:\/\/www.veeam.com\/ru\/vm-backup-recovery-replication-software.html\">Veeam Backup & Replication<\/a> в бесплатной версии содержит ограничения, не позволяющие комфортно использовать его на больших инфраструктурах. Ранее возможности автоматизации были сильно урезаны, в свежих версиях они расширены, но всё равно недостаточны для масштабов, актуальных на моём текущем проекте.<\/p>\n<p>При этом, где-то в районе 2016 года Veeam включил поддержку PowerCLI, тогда мне попался на одном из тематических ресурсов <a href=\"https:\/\/www.veeam.com\/blog\/ru\/veeam-backup-free-edition-now-with-powershell.html\">скрипт<\/a> от сотрудника Veeam Владимира Еремина, позволяющий запускать бэкапы. Ну а там где есть скрипт или API — есть и возможность дальнейшей автоматизации.<\/p>\n<p>Моя идея проста: добавить в описание ВМ теги, определяющие применённый к машине план резервного копирования. Управляющие скрипты запускаются по планировщику на сервере с Veeam Backup, находят в инфраструктуре по тегам все машины, которым требуется провести копирование в этот раз, и передают эти данные на вход запускающего рк оригинального скрипта.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/www.batishchev.ru\/blog\/pictures\/photo_2020-11-10_15-33-22.jpg\" width=\"365\" height=\"201\" alt=\"\" \/>\n<\/div>\n<p>Со временем управляющий скрипт и оригинал обросли обвязкой (логирование, высылка уведомлений при ошибках, возможность задания путей и целевых СРК), но главная идея не изменилась:<\/p>\n<ul>\n<li>программируем логику выбора виртуалок в скрипт<\/li>\n<li>храним привязку вм к планам копирования тегами в их описаниях<\/li>\n<li>задаем время старта планов копирования планировщиком задач на сервере<\/li>\n<\/ul>\n<p>Достоинство решения — стандартные по КЭНК:<\/p>\n<ul>\n<li>оно бесплатное<\/li>\n<li>оно эффективно решает задачу максимально штатными средствами (теги хранятся в описаниях машин, расписания — в планировщике задач)<\/li>\n<li>оно гибкое — ничего не мешает завести несколько серверов с Veeam, вешать на машины несколько тегов и добавлять машины в несколько планов<\/li>\n<li>оно кастомизируемое — скрипт простой и его можно менять по своему усмотрению<\/li>\n<\/ul>\n<p>Основной принципиальный недостаток реализованного решения — задачи резервного копирования из скрипта стартуют по очереди (при том что и сам Veeam и мощности инфраструктуры позволяют пережевать несколько одновременных потоков). Впрочем, даже с таким подходом в окно обслуживания удается уложиться без проблем, а значит усложнять решение незачем, по крайней мере пока.<\/p>\n<p>велосипед на гитхабе: <a href=\"https:\/\/github.com\/alexbatishchev\/kenk-backuppo-veeam\">https:\/\/github.com\/alexbatishchev\/kenk-backuppo-veeam<\/a><\/p>\n<p>КЭНК!<br \/>\nСлава роботам!<\/p>\n",
            "date_published": "2020-11-10T20:17:36+03:00",
            "date_modified": "2025-04-14T12:22:28+03:00",
            "tags": [
                "PowerShell",
                "VMware",
                "безопационная информасность",
                "все эти ваши компьютеры",
                "КЭНК"
            ],
            "image": "https:\/\/www.batishchev.ru\/blog\/pictures\/photo_2020-11-10_15-33-22.jpg",
            "_date_published_rfc2822": "Tue, 10 Nov 2020 20:17:36 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "54",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": [
                    "https:\/\/www.batishchev.ru\/blog\/pictures\/photo_2020-11-10_15-33-22.jpg"
                ]
            }
        },
        {
            "id": "52",
            "url": "https:\/\/www.batishchev.ru\/blog\/all\/kenk-podmenyator-diskov-dlya-vsphere\/",
            "title": "КЭНК: подменятор дисков для vSphere",
            "content_html": "<p><i>TL;DR на лету подсовываем скриптом жесткие диски виртуалкам на Windows<\/i><\/p>\n<p>Архитектура одной из систем на проекте подразумевает полную сетевую изоляцию — компьютеры пользователей и сервера расположены в отдельной сети и не имеют связи с внешним миром. При этом пользователи обладают низкой компьютерной культурой и активно приносят данные в систему на флешках — а значит мы имеем ненулевую вероятность поймать вредонос, например шифровальщик. В общем, налицо необходимость регулярной доставки обновлений антивируса в систему, и стойкое нежелание делать это вручную. Твой выход, КЭНК-мен!<\/p>\n<p>Кстати про супергероев. 12 лет назад я работал в классной дружной команде: мы фигачили с такой вовлечённостью и нацеленностью на результат, что совершенно естественным стало желание сдизайнить и заказать для айтишной группы плакаты и магниты на холодильник. Именно с таким ощущением мне с тех пор особенно сильно нравится работать:<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/www.batishchev.ru\/blog\/pictures\/superman-gf@2x.jpg\" width=\"714\" height=\"500\" alt=\"\" \/>\n<\/div>\n<p>После лирического отступления, возвращаемся к подменятору дисков. Так как и в основной и в изолированной системе работают центры администрирования Касперского, строим из подручных средств такой велосипед:<\/p>\n<ul>\n<li>добавляем по одному дополнительному vmdk диску к каждому серверу с KSC<\/li>\n<li>включаем опцию на основном сервере KSC, копирующую дубль обновлений на подменный диск<\/li>\n<li>делаем регулярную задачу на vCenter, стартующую скрипт PowerCLI, который меняет местами эти подменные диски между основным и изолированным KSC<\/li>\n<li>настраиваем изолированный KSC на забирание обновлений баз из папки на подменном диске<\/li>\n<li>заодно настраиваем регулярную выгрузки в папку на подменном диске статистики работы и мониторинга ИС<\/li>\n<\/ul>\n<p>В итоге: требование сетевой изоляции соблюдено, базы антивируса с задержкой на 1-2 часа от внешнего мира обновляются автоматически, в мониторинг основой инфраструктуры попадают сведения из изолированной (с допустимым по SLA временем реакции).<\/p>\n<p>Система вышла уязвимой к снапшотам, так как конфигурацию дисков на ВМ со снимками менять нельзя. Поэтому во время создания резервных копий серверов KSC подмены дисков не происходит. Впрочем накладка этих событий случается достаточно редко и сильно на работу системы не влияет — ничего страшного, переключатся в следующую итерацию.<\/p>\n<p>Самое сложное в этом велосипеде — подобрать период переключения и времена стартов соответствующих задач на KSC, так как скачивание баз с репозиториев в интернетах происходит далеко не мгновенно (но это отдельная печальная песня). В нашем случае диски меняются местами раз в три часа.<\/p>\n<p>Пока не решил, стоит ли тут заливать код скрипта на гитхаб, всё же ценность этого кэнк-решения в идее, а реализация довольно тривиальна. Но может заодно с другими выложу как-нибудь.<\/p>\n<p>КЭНК!<br \/>\nСлава Роботам!<\/p>\n",
            "date_published": "2020-11-08T21:23:34+03:00",
            "date_modified": "2025-04-14T12:22:16+03:00",
            "tags": [
                "VMware",
                "безопационная информасность",
                "КЭНК"
            ],
            "image": "https:\/\/www.batishchev.ru\/blog\/pictures\/superman-gf@2x.jpg",
            "_date_published_rfc2822": "Sun, 08 Nov 2020 21:23:34 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "52",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": [
                    "https:\/\/www.batishchev.ru\/blog\/pictures\/superman-gf@2x.jpg"
                ]
            }
        },
        {
            "id": "46",
            "url": "https:\/\/www.batishchev.ru\/blog\/all\/matryoshka-makintoshka\/",
            "title": "Матрёшка — макинтошка",
            "content_html": "<p>Возникла необходимость проверить кое-что в среде MacOS (тестовый режим, никакого нарушения лицензионного соглашения). Оригинальной железки или просто свободного компа для развёртывания не нашлось, зато были мощности в виртуальной среде и немного изобретательности.<\/p>\n<p>В итоге работает такая схема:<\/p>\n<ul>\n<li>Вот блейд-сервер железный могучий многолезвийный в ЦОДе<\/li>\n<li>Вот на одном из лезвий vSphere красивая да отказоустойчивая<\/li>\n<li>Вот в той висфере виртуалка, а в ней винда десятая до последней версии проапдейченная<\/li>\n<li>Вот в той виртуалке VMware Workstation триальная тридцатидневная<\/li>\n<li>Вот в том воркстейшене ещё одна виртуалка, а в ней MacOS Catalina тёмнотемная<\/li>\n<\/ul>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/www.batishchev.ru\/blog\/pictures\/camphoto_959030623.jpeg\" width=\"1024\" height=\"753\" alt=\"\" \/>\n<\/div>\n<p>Ставить макось напрямую в vSphere было нельзя, так как это потребовало бы патча виртуальной среды сторонним софтом. Производительность решения не была важна, а весь основной функционал ОС в таком варианте завёлся и работает, так что метод можно считать успешным.<\/p>\n<p>По развёртыванию мака в VMware Workstation много статей в интернетах, я опирался на эти:<\/p>\n<ul>\n<li><a href=\"https:\/\/applehint.com\/t\/how-to-create-bootable-macos-catalina-iso-and-dmg-images-in-both-macos-and-windows\/1497\">как скачать образ системы и сделать из него загрузочный ISO<\/a><\/li>\n<li><a href=\"https:\/\/brofox86.github.io\/macos-plus\/ustanovka-macos-na-virtualnuyu-mashinu.html\">как настроить виртуальную машину и поставить в неё MacOS<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/paolo-projects\/unlocker\/releases\">патчик для VMware Workstation<\/a><\/li>\n<\/ul>\n",
            "date_published": "2020-02-12T16:03:52+03:00",
            "date_modified": "2020-12-03T23:40:56+03:00",
            "tags": [
                "VMware",
                "технологии"
            ],
            "image": "https:\/\/www.batishchev.ru\/blog\/pictures\/camphoto_959030623.jpeg",
            "_date_published_rfc2822": "Wed, 12 Feb 2020 16:03:52 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "46",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": [
                    "https:\/\/www.batishchev.ru\/blog\/pictures\/camphoto_959030623.jpeg"
                ]
            }
        },
        {
            "id": "941",
            "url": "https:\/\/www.batishchev.ru\/blog\/all\/2014-06-16-12-14-00\/",
            "title": "пост из гуглоплюса от 16 июня 2014 12:14",
            "content_html": "<p>Взяли в отдел админа — фаната футурамы. Теперь у нас есть висфера с автодеплоем и дистрибьютед-свитчами.﻿<\/p>\n",
            "date_published": "2014-06-16T11:14:00+03:00",
            "date_modified": "2021-01-10T22:31:44+03:00",
            "tags": [
                "VMware",
                "посты из гуглоплюса"
            ],
            "_date_published_rfc2822": "Mon, 16 Jun 2014 11:14:00 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "941",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": []
            }
        },
        {
            "id": "795",
            "url": "https:\/\/www.batishchev.ru\/blog\/all\/2012-06-01-12-59-00\/",
            "title": "Приехала книжечка, новенькая, с пылу с жару",
            "content_html": "<p>Приехала книжечка, новенькая, с пылу с жару. Щас узнаем, чего там буржуины напихали в новую версию.<\/p>\n<p><a href=\"http:\/\/maps.google.com?ll=55.657787,37.60325&amp;q=55.657787,37.60325\">Болотниковская ул.<\/a><\/p>\n<p><i>оригинальный пост сопровождён <a href=\"http:\/\/maps.google.com?ll=55.657787,37.60325&q=55.657787,37.60325\">геометкой<\/a><\/i><\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/www.batishchev.ru\/blog\/pictures\/res.img_2012_06_01_1338537544269@2x.jpg\" width=\"359\" height=\"600\" alt=\"\" \/>\n<\/div>\n",
            "date_published": "2012-06-01T11:59:00+03:00",
            "date_modified": "2021-01-09T17:00:50+03:00",
            "tags": [
                "VMware",
                "мобилофото",
                "посты из гуглоплюса"
            ],
            "image": "https:\/\/www.batishchev.ru\/blog\/pictures\/res.img_2012_06_01_1338537544269@2x.jpg",
            "_date_published_rfc2822": "Fri, 01 Jun 2012 11:59:00 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "795",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": [
                    "https:\/\/www.batishchev.ru\/blog\/pictures\/res.img_2012_06_01_1338537544269@2x.jpg"
                ]
            }
        }
    ],
    "_e2_version": 4171,
    "_e2_ua_string": "Aegea 11.4 (v4171)"
}