![Проверьте данные диска данных виртуальной машины Azure с помощью PowerShell](https://rvso.com/image/726387/%D0%9F%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D1%8C%D1%82%D0%B5%20%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D0%B5%20%D0%B4%D0%B8%D1%81%D0%BA%D0%B0%20%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85%20%D0%B2%D0%B8%D1%80%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9%20%D0%BC%D0%B0%D1%88%D0%B8%D0%BD%D1%8B%20Azure%20%D1%81%20%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D1%8C%D1%8E%20PowerShell.png)
Я пытаюсь получить детали для Data Disk, подключенного к конкретной VM. Основная цель — получать уведомления, когда дисковое пространство сильно используется.
Я могу получить имена дисков данных, подключенных к виртуальной машине, с помощью команды ниже, но не получаю такие подробности, как размер диска, выделенное пространство/оставшееся дисковое пространство и т. д.
((get-azurermvm -resourcegroupname $vm.resourcegroupname -name $vm.name).StorageProfile).DataDisks
Есть New-Azurermvmdatadisk, Set-Azurermvmdatadisk, но нет ничего похожего на Get-Azurermvmdatadisk
Может ли кто-нибудь помочь, как мне получить данные о диске с данными?
решение1
Существующие командлеты для Azure Compute извлекут МАКСИМАЛЬНЫЙ размер диска данных, но не РЕАЛЬНЫЙ используемый размер. Я поднял вопрос в Microsoft и узнал, что эта функция пока недоступна. Вот почему мы используем решения для мониторинга, такие как OMS, datadog и т. д., которые развертывают своих агентов внутри виртуальной машины для извлечения подробной информации, подобной той, которую вы запросили.
решение2
Эта информация недоступна за пределами виртуальной машины; гипервизор просто не имеет возможности узнать, сколько места виртуальная машина фактически использует из выделенного размера диска. Это, кстати, верно длялюбойгипервизор, будь то Hyper-V (на котором основан Azure), VMware или что-то еще.
Чтобы узнать, сколько места фактически занято или свободно, необходимо заглянуть внутрь виртуальной машины; можно использовать агенты мониторинга (например, включенные в Azure) или даже запустить скрипт, который вызывает командлет PowerShell Get-Volume
.
Есть несколько способовзапуск скриптов внутри виртуальной машины Azure, из которых самый простой, вероятно, Invoke-AzVMRunCommand
в Azure PowerShell.