Операции с виртуальными дисками
Описание
- Виртуальные диски — основные средства хранения данных ВМ. При этом это самостоятельный объект системы.
Серийный номер
Серийный номер диска, который увидит ВМ, является первыми 20 символами id диска из базы данных контроллера.
Создание
- Создание нового, несвязанного виртуального диска, описано в Создание диска. Создание связанного с ВМ диска происходит на этапе создания самой ВМ и полностью повторяет ранее описанный процесс.
Подключение диска
- Подключение диска к ВМ производится в интерфейсе управления ВМ и описана в Подключение диска.
Копирование
- Скопировать диск в другой пул данных можно в окне информации о состоянии диска с помощью кнопки Копировать в верхней части этого окна.
Перенос
-
Перенос диск на другой пул данных можно в окне информации о состоянии диска с помощью кнопки Перенос диска в верхней части этого окна.
-
Перенос данных диска на LUN можно в окне информации о состоянии диска с помощью кнопки Перенос диска в верхней части этого окна c выбором нужного LUN.
Скачивание
- Скачать диск к себе на устройство можно в окне информации о состоянии диска с помощью кнопки Скачать в верхней части этого окна.
Проверка
- Проверить диск (с возможностью починки) можно в окне информации о состоянии диска с помощью кнопки Проверка диска в верхней части этого окна. Операция доступна только для дисков, находящимся на файловых пулах данных.
Разрежение
-
Разрежение (уменьшение размера диска) диска возможно с помощью кнопки Разрежение в верхней части этого окна. Операция доступна только для дисков, находящимся на файловых пулах данных. Если диск примонтирован к ВМ, то она должна быть выключена.
-
Разрежение может сделать диск виртуальной машины (или любой образ диска) разреженным, т. е. тонким. Это означает, что свободное пространство в диске может быть преобразовано обратно в свободное пространство на узле.
-
Разрежение может находить и разрежать свободное пространство в большинстве файловых систем (например, ext⅔/4, btrfs, NTFS и т. Д.), а также в физических томах LVM.
-
Ниже показан пример работы разрежения. Обратите внимание на изменения disk size:
[root@a0d97eae-3597-4d5b-bb0f-6b8dc8cc7e97 default]# df -h ./ Filesystem Size Used Avail Use% Mounted on /dev/mapper/sys_vg01-local_storage 15G 2.6G 12G 19% /storages/local [root@a0d97eae-3597-4d5b-bb0f-6b8dc8cc7e97 default]# qemu-img info 06b4f262-4639-475d-8c6b-ef7ca38473e7.qcow2 image: 06b4f262-4639-475d-8c6b-ef7ca38473e7.qcow2 file format: qcow2 virtual size: 15 GiB (16106127360 bytes) disk size: 2.5 GiB cluster_size: 65536 Format specific information: compat: 1.1 compression type: zlib lazy refcounts: false refcount bits: 16 corrupt: false extended l2: false [root@a0d97eae-3597-4d5b-bb0f-6b8dc8cc7e97 default]# qemu-nbd -c /dev/nbd0 06b4f262-4639-475d-8c6b-ef7ca38473e7.qcow2 [root@a0d97eae-3597-4d5b-bb0f-6b8dc8cc7e97 default]# mount /dev/nbd0p1 ./1/ [root@a0d97eae-3597-4d5b-bb0f-6b8dc8cc7e97 default]# dd if=/dev/urandom of=./1/tmp.img bs=1M count=2024 2024+0 records in 2024+0 records out 2122317824 bytes (2.1 GB, 2.0 GiB) copied, 95.7747 s, 22.2 MB/s [root@a0d97eae-3597-4d5b-bb0f-6b8dc8cc7e97 default]# sync [root@a0d97eae-3597-4d5b-bb0f-6b8dc8cc7e97 default]# umount ./1 [root@a0d97eae-3597-4d5b-bb0f-6b8dc8cc7e97 default]# qemu-nbd -d /dev/nbd0 /dev/nbd0 disconnected [root@a0d97eae-3597-4d5b-bb0f-6b8dc8cc7e97 default]# df -h ./ Filesystem Size Used Avail Use% Mounted on /dev/mapper/sys_vg01-local_storage 15G 4.6G 9.4G 33% /storages/local [root@a0d97eae-3597-4d5b-bb0f-6b8dc8cc7e97 default]# qemu-img info 06b4f262-4639-475d-8c6b-ef7ca38473e7.qcow2 image: 06b4f262-4639-475d-8c6b-ef7ca38473e7.qcow2 file format: qcow2 virtual size: 15 GiB (16106127360 bytes) disk size: 4.47 GiB cluster_size: 65536 Format specific information: compat: 1.1 compression type: zlib lazy refcounts: false refcount bits: 16 corrupt: false extended l2: false [root@a0d97eae-3597-4d5b-bb0f-6b8dc8cc7e97 default]# virt-sparsify --format qcow2 --in-place 06b4f262-4639-475d-8c6b-ef7ca38473e7.qcow2 [ 3.0] Trimming /dev/sda1 [ 3.8] Sparsify in-place operation completed with no errors [root@a0d97eae-3597-4d5b-bb0f-6b8dc8cc7e97 default]# sync [root@a0d97eae-3597-4d5b-bb0f-6b8dc8cc7e97 default]# rm ./1/tmp.img [root@a0d97eae-3597-4d5b-bb0f-6b8dc8cc7e97 default]# umount ./1 [root@a0d97eae-3597-4d5b-bb0f-6b8dc8cc7e97 default]# qemu-nbd -d /dev/nbd0 /dev/nbd0 disconnected [root@a0d97eae-3597-4d5b-bb0f-6b8dc8cc7e97 default]# df -h ./ Filesystem Size Used Avail Use% Mounted on /dev/mapper/sys_vg01-local_storage 15G 4.6G 9.4G 33% /storages/local [root@a0d97eae-3597-4d5b-bb0f-6b8dc8cc7e97 default]# qemu-img info 06b4f262-4639-475d-8c6b-ef7ca38473e7.qcow2 image: 06b4f262-4639-475d-8c6b-ef7ca38473e7.qcow2 file format: qcow2 virtual size: 15 GiB (16106127360 bytes) disk size: 4.47 GiB cluster_size: 65536 Format specific information: compat: 1.1 compression type: zlib lazy refcounts: false refcount bits: 16 corrupt: false extended l2: false [root@a0d97eae-3597-4d5b-bb0f-6b8dc8cc7e97 default]# virt-sparsify --format qcow2 --in-place 06b4f262-4639-475d-8c6b-ef7ca38473e7.qcow2 [ 2.8] Trimming /dev/sda1 [ 3.9] Sparsify in-place operation completed with no errors [root@a0d97eae-3597-4d5b-bb0f-6b8dc8cc7e97 default]# df -h ./ Filesystem Size Used Avail Use% Mounted on /dev/mapper/sys_vg01-local_storage 15G 2.6G 12G 19% /storages/local [root@a0d97eae-3597-4d5b-bb0f-6b8dc8cc7e97 default]# qemu-img info 06b4f262-4639-475d-8c6b-ef7ca38473e7.qcow2 image: 06b4f262-4639-475d-8c6b-ef7ca38473e7.qcow2 file format: qcow2 virtual size: 15 GiB (16106127360 bytes) disk size: 2.49 GiB cluster_size: 65536 Format specific information: compat: 1.1 compression type: zlib lazy refcounts: false refcount bits: 16 corrupt: false extended l2: false
Настройка I/O
- Настроить I/O диска можно в окне информации о состоянии диска с помощью кнопки Настройки I/O в верхней части этого окна.
Параметр | Описание |
---|---|
total_bytes_sec | Общий предел пропускной способности в байтах в секунду. Не может использоваться с read_bytes_sec или write_bytes_sec. |
read_bytes_sec | Предел пропускной способности чтения в байтах в секунду. |
write_bytes_sec | Предел пропускной способности записи в байтах в секунду. |
total_iops_sec | Общее количество операций ввода-вывода в секунду. Не может использоваться с read_iops_sec или write_iops_sec. |
read_iops_sec | Количество операций чтения в секунду. |
write_iops_sec | Количество операций записи в секунду. |
total_bytes_sec_max | Общий предел пропускной способности в период высокой загрузки в байтах в секунду. Не может использоваться с read_bytes_sec_max или write_bytes_sec_max. |
read_bytes_sec_max | Предел пропускной способности чтения в период высокой загрузки в байтах в секунду. |
write_bytes_sec_max | Предел пропускной способности записи в период высокой загрузки в байтах в секунду. |
total_iops_sec_max | Общее количество операций ввода-вывода в период высокой загрузки в секунду. Не может использоваться с read_iops_sec_max или write_iops_sec_max. |
read_iops_sec_max | Количество операций чтения в период высокой загрузки в секунду. |
write_iops_sec_max | Количество операций записи в период высокой загрузки в секунду. |
size_iops_sec | Размер операций ввода-вывода в секунду. |
total_bytes_sec_max_length | Продолжительность в секундах для периода высокой загрузки total_bytes_sec_max. Действителен только при установленном параметре total_bytes_sec_max. |
read_bytes_sec_max_length | Продолжительность в секундах для периода высокой загрузки read_bytes_sec_max. Действителен только при установленном параметре read_bytes_sec_max. |
write_bytes_sec_max | Продолжительность в секундах для периода высокой загрузки write_bytes_sec_max. Действителен только при установленном параметре write_bytes_sec_max. |
total_iops_sec_max_length | Продолжительность в секундах для периода высокой загрузки total_iops_sec_max. Действителен только при установленном параметре total_iops_sec_max. |
read_iops_sec_max_length | Продолжительность в секундах для периода высокой загрузки read_iops_sec_max. Действителен только при установленном параметре read_iops_sec_max. |
write_iops_sec_max | Продолжительность в секундах для периода высокой загрузки write_iops_sec_max. Действителен только при установленном параметре write_iops_sec_max. |
Конвертирование
- Конвертирование виртуального диска в форматы vmdk (ESXI), vhd (HyperV), vdi (VirtualBox) можно в окне информации с помощью кнопки Конвертировать в верхней части этого окна.
Удаление
- Удалить диск можно вместе с удаляемой ВМ или в окне информации о состоянии диска с помощью кнопки Удалить.
Информация
-
Также в окне состояния виртуального диска содержится следующая информация:
-
виджет используемого места с возможностью обновления;
-
название (редактируемый параметр);
-
описание (редактируемый параметр);
-
подключение к ВМ;
-
пул данных;
-
виртуальная машина;
-
размер виртуального диска с возможностью увеличения по кнопке ;
-
расположение;
-
тип шины;
-
SSD эмуляция;
-
тип кэширования;
-
тип драйвера;
-
имя назначения;
-
доступность только чтения ВМ (readonly, редактируемый параметр);
-
дата и время создания;
-
сообщения о работе виртуального диска с возможностью их сортировки по признакам - По всем типам, Ошибки, Предупреждения, Информационные. Также имеется возможность отображения только непрочитанных сообщений.
-
Расширение
Размер виртуального диска с возможностью увеличения по кнопке .
Если диск уже подключен к ВМ и она включена, то после расширения надо использовать средства управления дисками внутри ВМ для использования нового места на устройстве.
Примечание
Рекомендуется использовать шину диска virtio вкупе с установленными драйверами в ВМ.
Режим мультииспользования диска несколькими ВМ
Требования: Блочные пулы данных (lvm, thin_lvm, shared_lvm).
При добавлении диска необходимо в расширенных опциях включить опцию "Режим мульти использования диска несколькими ВМ". Кластерная файловая система с блокировками обеспечивается ПО внутри ВМ (например, в Windows Server 2019).
SSD эмуляция
Требования: Тип шины любой, кроме virtio.
При включенной эмуляции SSD показано наличие вращающего механизма у виртуального диска:
Опции I/O
Варианты: io_uring, threads, native.
Для пулов данных типа директория по умолчанию ставится тип io_uring, для блочных типов threads.