Каждый день мне приходится добавлять место на одном, двух, трёх, пяти, а иногда и десяти серверах баз данных.
Почему? Потому что для них характерен естественный рост оснований.
Серверов сотни, все они виртуальные машины с тонкими дисками.
Если заранее дать им много места, то обязательно произойдет какой-нибудь «побег», типа апгрейда с переполнением таблиц, который сожрет все это пространство, а если не сожрет, то он укусит его.
Как известно, Thin Provisioning — это путь в один конец, если пространство сожрут, но потом его уже не вернуть обратно.
В результате большинство серверов зависают где-то на границе 90% используемого пространства — именно потому, что оповещение срабатывает на границе 90%.
Как только я даю немного, совсем немного места, сервер уходит на использованную площадь 80%-85%, и через месяц нужно снова добавить еще одно место.
И, тем не менее, не буду сразу много выдавать - слишком много прецедентов с побегами.
Я так часто выполнял механическую работу по расширению дискового пространства, что мне это надоело, и я решил автоматизировать ее с помощью Jenkins:
Прошу прощения за несколько скучное и подробное описание ниже, но если это может быть кому-то полезно, то важны именно мелкие детали — именно на них вы всегда тратите больше всего времени.
Если детали не важны, сразу листайте до последней картинки.
Конечно, прежде чем добавлять место, я смотрю историю роста % использованного места, автоматически прикрепляемую к оповещению.
моя секретная система мониторинга .
Чаще всего рост является естественным:
Но здесь лучше сначала разобраться:
Давайте вернемся к Jenkins, который представляет собой всего лишь интерфейс к сценарию Powershell. У нас много VMware Vcenters, поэтому специальная SQL-процедура по имени сервера определяет, где находится этот сервер, и подключается к нему:
Теперь читаем размер диска, прибавляем дельту и устанавливаем новое значение.
Правда, я нагло пользуюсь тем, что все наши сервера заброшены подобным образом, например D:всегда Hard disk 2. Если у вас это не так, то вам придется помучаться.
Теперь диск расширяется с точки зрения VMware, а не с точки зрения гостя (Windows).
Мы должны использовать выделенное пространство.
Для этого вам нужно выполнить команду DISKPART внутри гостя.
Нагло запихиваем BAT и IN файл в корень D:, и с помощью WMIC заставляем машину выполнять эти команды.
Файл doresizeX.bat (X — имя диска) содержит только
часть диска d:\doresize.outИ doresizeX.in содержит:
повторное сканирование выберите том X продлевать ВыходТеперь всё готово, нужно просто немного подождать (команда асинхронная!) и прочитать результат, отфильтровав лишнее:
И ждем письма от Дженкинса:
Теги: #Виртуализация #vmware #Администрирование сервера #Администрирование баз данных #PowerShell #хранилище #Microsoft SQL Server #администрирование #mssql #mssql
-
Goblin_Gaga - Первая Жертва Супа?
19 Oct, 24 -
Inkscape: Начало (Перевод)
19 Oct, 24 -
3D-Печать Как Инструмент Маркетинга
19 Oct, 24 -
Яндекс Научился Считать Деньги
19 Oct, 24