Files
wiki-decort-ansible/11.0.0/модуль-decort_disk.md
2026-02-11 13:55:42 +03:00

886 lines
23 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Модуль decort_disk
## Обзор модуля decort_disk
Модуль **decort_disk** предназначен для выполнения следующих действий над дисками:
- **создать** (см. [примеры](#создать))
- **с указанием описания** (см. [параметр description](#description) и [примеры](#с-указанием-описания))
- **c указанием СХД** (см. [параметр sep_id](#sep_id) и [примеры](#с-указанием-схд))
- **с указанием СХД и пула** (см. [параметр sep_id](#sep_id) и [параметр pool](#pool) и [примеры](#с-указанием-схд-и-пула))
- **удалить** (см. [примеры](#удалить))
- **в корзину** (см. [параметр state](#state) и [примеры](#в-корзину))
- **безвозвратно** (см. [параметр state](#state) и [параметр permanently](#permanently) и [примеры](#безвозвратно))
- **восстановить из корзины** (см. [параметр state](#state) и [примеры](#восстановить-из-корзины))
- **изменить** (см. [примеры](#изменить))
- **имя** (см. [параметр name](#param_name) и [примеры](#имя))
- **размер** (см. [параметр size](#size) и [примеры](#размер))
- **лимиты ввода/вывода** (см. [параметр limitIO](#limitIO) и [примеры](#лимиты-вводавывода))
- **политику хранения** (см. [параметр storage_policy_id](#storage_policy_id) и [примеры](#политику-хранения))
- **включить/отключить общий доступ** (см. [параметр shareable](#shareable) и [примеры](#включитьотключить-общий-доступ))
## Параметры модуля decort_disk
Ниже приведен список параметров для модуля **decort_disk** (за исключением [общих параметров](./введение.md#общие-параметры-модулей)):
<table>
<tr>
<th colspan="6">Параметр</th>
<th>Тип</th>
<th>Описание</th>
</tr>
<tr>
<td colspan="6">
<a name="account_id">
account_id
</a>
</td>
<td>
(int)
</td>
<td>
Уникальный целочисленный идентификатор аккаунта, которому принадлежит данный диск.
<br>При идентификации диска по имени (см. параметр <a href=#param_name>name</a>) должен быть задан либо идентификатор, либо имя аккаунта (см. параметр <a href=#account_name>account_name</a>).
<br>Если одновременно заданы и <a href=#account_id>account_id</a>, и <a href=#account_name>account_name</a>, то <a href=#account_name>account_name</a> игнорируется.
</td>
</tr>
<tr>
<td colspan="6">
<a name="account_name">
account_name
</a>
</td>
<td>
(str)
</td>
<td>
Имя аккаунта, которому принадлежит данный диск.
<br>При идентификации диска по имени (см. параметр <a href=#param_name>name</a>) должно быть задано либо имя, либо идентификатор учётной записи (см. параметр <a href=#account_id>account_id</a>).
<br>Если одновременно заданы и <a href=#account_id>account_id</a>, и <a href=#account_name>account_name</a>, то <a href=#account_name>account_name</a> игнорируется.
</td>
</tr>
<tr>
<td colspan="6">
<a name="description">
description
</a>
</td>
<td>
(str)
</td>
<td>
Текстовое описание диска.
<br>Данный параметр является опциональным и учитывается только при создании диска, а при всех прочих операциях игнорируется.
</td>
</tr>
<tr>
<td colspan="6">
<a name="param_id">
id
</a>
</td>
<td>
(int)
</td>
<td>
Уникальный целочисленный идентификатор диска.
<br>Соответствующий диск должен существовать (таким образом, с помощью id нельзя создать новый диск, а только управлять уже имеющимися).
<br>Если задан данный параметр, то параметры <a href=#param_name>name</a>, <a href=#account_name>account_name</a> и <a href=#account_id>account_id</a> игнорируются.
</td>
</tr>
<tr>
<td colspan="6">
<a name="force_detach">
force_detach
</a>
</td>
<td>
(bool)
<br>Default: <code>false</code>
</td>
<td>
Задаёт поведение платформы при попытке удалить диск, подключённый к виртуальной машине.
<br>По умолчанию, удаление подключённых дисков не разрешается, и попытка удалить такой диск приведёт к аварийному завершению модуля.
<br>Чтобы изменить это поведение, явно установите <code>force_detach: true</code>.
</td>
</tr>
<tr>
<td colspan="6">
<a name="limitIO">
limitIO
</a>
</td>
<td>
(dict)
</td>
<td>
Параметр, позволяющий ограничить скорость ввода/вывода диска как в iops, так и в байтах в секунду.
<br>Обратите внимание, что параметры с total не задаются вместе с read/write.
</td>
</tr>
<tr>
<td></td>
<td colspan="5">
read_bytes_sec
</a>
</td>
<td>
(int)
</td>
<td>
</td>
</tr>
<tr>
<td></td>
<td colspan="5">
read_bytes_sec_max
</a>
</td>
<td>
(int)
</td>
<td>
</td>
</tr>
<tr>
<td></td>
<td colspan="5">
read_iops_sec
</a>
</td>
<td>
(int)
</td>
<td>
</td>
</tr>
<tr>
<td></td>
<td colspan="5">
read_iops_sec_max
</a>
</td>
<td>
(int)
</td>
<td>
</td>
</tr>
<tr>
<td></td>
<td colspan="5">
size_iops_sec
</a>
</td>
<td>
(int)
</td>
<td>
</td>
</tr>
<tr>
<td></td>
<td colspan="5">
total_bytes_sec
</a>
</td>
<td>
(int)
</td>
<td>
</td>
</tr>
<tr>
<td></td>
<td colspan="5">
total_bytes_sec_max
</a>
</td>
<td>
(int)
</td>
<td>
</td>
</tr>
<tr>
<td></td>
<td colspan="5">
total_iops_sec
</a>
</td>
<td>
(int)
</td>
<td>
</td>
</tr>
<tr>
<td></td>
<td colspan="5">
total_iops_sec_max
</a>
</td>
<td>
(int)
</td>
<td>
</td>
</tr>
<tr>
<td></td>
<td colspan="5">
write_bytes_sec
</a>
</td>
<td>
(int)
</td>
<td>
</td>
</tr>
<tr>
<td></td>
<td colspan="5">
write_bytes_sec_max
</a>
</td>
<td>
(int)
</td>
<td>
</td>
</tr>
<tr>
<td></td>
<td colspan="5">
write_iops_sec
</a>
</td>
<td>
(int)
</td>
<td>
</td>
</tr>
<tr>
<td></td>
<td colspan="5">
write_iops_sec_max
</a>
</td>
<td>
(int)
</td>
<td>
</td>
</tr>
<tr>
<td colspan="6">
<a name="param_name">
name
</a>
</td>
<td>
(str)
</td>
<td>
Имя диска.
<br>Для идентификации диска требуется либо его <a href=#param_name>name</a> и информация об аккаунте (<a href=#account_id>account_id</a> или <a href=#account_name>account_name</a>), которому принадлежит диск, либо его <a href=#param_id>id</a>.
</td>
</tr>
<tr>
<td colspan="6">
<a name="permanently">
permanently
</a>
</td>
<td>
(bool)
<br>Default: <code>false</code>
</td>
<td>
Параметр, использующийся при удалении диска.
<br>При значении <code>true</code> - диск удалится навсегда, а при <code>false</code> - попадёт в корзину.
</td>
</tr>
<tr>
<td colspan="6">
<a name="place_with">
place_with
</a>
</td>
<td>
(int)
</td>
<td>
Идентификатор образа диска, из которого следует взять параметр <a href=#sep_id>sep_id</a>, чтобы разместить данный диск на той же системе хранения данных, что и указанный образ диска.
<br>Данный параметр является опциональным и используется только на стадии создания диска.
<br>Если задан <a href=#place_with>place_with</a>, то <a href=#sep_id>sep_id</a> игнорируется.
</td>
</tr>
<tr>
<td colspan="6">
<a name="pool">
pool
</a>
</td>
<td>
(str)
</td>
<td>
Название пула на системе хранения данных, в рамках которой следует создать данный диск.
<br>Этот параметр используется только на стадии создания диска и игнорируется при операциях над уже существующими дисками.
<br>Параметр является опциональным, если не задан, то платформа будет использовать пул, который сконфигурирован на целевой системе хранения как пул по умолчанию.
</td>
</tr>
<tr>
<td colspan="6">
<a name="sep_id">
sep_id
</a>
</td>
<td>
(int)
</td>
<td>
Идентификатор системы хранения данных (Storage End-point).
<br>Данный параметр определяет систему хранения данных, на ресурсах которой создаётся диск.
<br>Используется только при создании диска и игнорируется при прочих операциях.
<br>Альтернативой данному параметру является <a href=#place_with>place_with</a>, позволяющий разместить диск на той же системе хранения, что и указанный образ диска, на базе которого создаётся виртуальная машина.
</td>
</tr>
<tr>
<td colspan="6">
<a name="shareable">
shareable
</a>
</td>
<td>
(bool)
<br>Default: <code>false</code>
</td>
<td>
Включение/отключение общего доступа к диску.
</td>
</tr>
<tr>
<td colspan="6">
<a name="size">
size
</a>
</td>
<td>
(int)
</td>
<td>
Размер диска в ГБ.
<br>Этот параметр является обязательным при создании диска.
<br>Если он задан для уже существующего диска, а текущий размер диска меньше заданного, то будет предпринята попытка увеличить размер диска.
<br>При прочих операциях данный параметр игнорируется.
</td>
</tr>
<tr>
<td colspan="6">
<a name="state">
state
</a>
</td>
<td>
(str)
<br>Значения:
<br><code>present</code>
<br><code>absent</code>
<br>Default: <code>present</code>
</td>
<td>
Целевое состояние диска.
</td>
</tr>
<tr>
<td colspan="6">
<a name="storage_policy_id">
storage_policy_id
</a>
</td>
<td>
(int)
</td>
<td>
Идентификатор политики хранения.
<br>Обязателен при создании.
</td>
</tr>
</table>
## Возвращаемые значения модуля decort_disk
Модуль **decort_disks** возвращает информацию о диске в виде словаря `facts` со следующими ключами:
<table>
<tr>
<th colspan="6">Ключ</th>
<th>Тип</th>
<th>Описание</th>
</tr>
<tr>
<td colspan="6">
account_id
</td>
<td>
int
</td>
<td>
Уникальный целочисленный идентификатор аккаунта, которому принадлежит диск.
</td>
</tr>
<tr>
<td colspan="6">
blkdiscard
</td>
<td>
bool
</td>
<td>
<code>true</code> - unmap
<br><code>false</code> - ignore
</td>
</tr>
<tr>
<td colspan="6">
cache_mode
</td>
<td>
str
</td>
<td>
Режим кэширования диска.
</td>
</tr>
<tr>
<td colspan="6">
computes
</td>
<td>
dict
</td>
<td>
Словарь, в котором ключ - идентификатор, а значение - имя виртуальной машины, к которой в настоящий момент подключён диск. Если диск не подключён, то возвращается пустой словарь.
</td>
</tr>
<tr>
<td colspan="6">
gid
</td>
<td>
int
</td>
<td>
Идентификатор физического кластера (Grid ID), на ресурсах которого создан диск.
</td>
</tr>
<tr>
<td colspan="6">
id
</td>
<td>
int
</td>
<td>
Уникальный целочисленный идентификатор данного диска.
</td>
</tr>
<tr>
<td colspan="6">
iotune
</td>
<td>
dict
</td>
<td>
Текущие ограничения ввода/вывода диска.
</td>
</tr>
<tr>
<td></td>
<td colspan="5">
read_bytes_sec
</td>
<td>
int | null
</td>
<td></td>
</tr>
<tr>
<td></td>
<td colspan="5">
read_bytes_sec_max
</td>
<td>
int | null
</td>
<td></td>
</tr>
<tr>
<td></td>
<td colspan="5">
read_iops_sec
</td>
<td>
int | null
</td>
<td></td>
</tr>
<tr>
<td></td>
<td colspan="5">
read_iops_sec_max
</td>
<td>
int | null
</td>
<td></td>
</tr>
<tr>
<td></td>
<td colspan="5">
size_iops_sec
</td>
<td>
int | null
</td>
<td></td>
</tr>
<tr>
<td></td>
<td colspan="5">
total_bytes_sec
</td>
<td>
int | null
</td>
<td></td>
</tr>
<tr>
<td></td>
<td colspan="5">
total_bytes_sec_max
</td>
<td>
int | null
</td>
<td></td>
</tr>
<tr>
<td></td>
<td colspan="5">
total_iops_sec
</td>
<td>
int | null
</td>
<td></td>
</tr>
<tr>
<td></td>
<td colspan="5">
total_iops_sec_max
</td>
<td>
int | null
</td>
<td></td>
</tr>
<tr>
<td></td>
<td colspan="5">
write_bytes_sec
</td>
<td>
int | null
</td>
<td></td>
</tr>
<tr>
<td></td>
<td colspan="5">
write_bytes_sec_max
</td>
<td>
int | null
</td>
<td></td>
</tr>
<tr>
<td></td>
<td colspan="5">
write_iops_sec
</td>
<td>
int | null
</td>
<td></td>
</tr>
<tr>
<td></td>
<td colspan="5">
write_iops_sec_max
</td>
<td>
int | null
</td>
<td></td>
</tr>
<tr>
<td colspan="6">
name
</td>
<td>
str
</td>
<td>
Имя диска. Обратите внимание, что имя диска не является уникальным с точки зрения системы хранения данных, на которой этот диск расположен.
</td>
</tr>
<tr>
<td colspan="6">
pool
</td>
<td>
str
</td>
<td>
Имя пула на системе хранения данных, в котором размещаются ресурсы диска.
</td>
</tr>
<tr>
<td colspan="6">
sep_id
</td>
<td>
int
</td>
<td>
Идентификатор системы хранения данных (Storage Endpoint), на которой размещаются ресурсы данного диска.
</td>
</tr>
<tr>
<td colspan="6">
size
</td>
<td>
int
</td>
<td>
Размер диска в ГБ.
</td>
</tr>
<tr>
<td colspan="6">
size_available
</td>
<td>
float
</td>
<td>
Размер незанятого пространства в ГБ.
</td>
</tr>
<tr>
<td colspan="6">
size_used
</td>
<td>
float
</td>
<td>
Размер используемого пространства в ГБ.
</td>
</tr>
<tr>
<td colspan="6">
state
</td>
<td>
str
</td>
<td>
Текущий статус диска.
</td>
</tr>
<tr>
<td colspan="6">
storage_policy_id
</td>
<td>
int
</td>
<td>
Идентификатор политики хранения.
</td>
</tr>
<tr>
<td colspan="6">
to_clean
</td>
<td>
bool
</td>
<td>
Диск помечен для очистки после удаления.
</td>
</tr>
</table>
## Примеры использования
### Создать
#### С указанием описания
```
- name: Example
hosts: localhost
tasks:
- name: Create disk with description
decort_disk:
# Параметры для авторизации упущены
account_id: "{{ account_id }}"
name: "{{ disk_name }}"
size: "{{ disk_size }}"
storage_policy_id: "{{ storage_policy_id }}"
description: "{{ disk_description }}"
```
#### С указанием СХД
```
- name: Example
hosts: localhost
tasks:
- name: Create disk with sep
decort_disk:
# Параметры для авторизации упущены
account_id: "{{ account_id }}"
name: "{{ disk_name }}"
size: "{{ disk_size }}"
storage_policy_id: "{{ storage_policy_id }}"
sep_id: "{{ sep_id }}"
```
#### С указанием СХД и пула
```
- name: Example
hosts: localhost
tasks:
- name: Create disk with sep and pool
decort_disk:
# Параметры для авторизации упущены
account_id: "{{ account_id }}"
name: "{{ disk_name }}"
size: "{{ disk_size }}"
storage_policy_id: "{{ storage_policy_id }}"
sep_id: "{{ sep_id }}"
pool: "{{ sep_pool_name }}"
```
### Удалить
#### В корзину
```
- name: Example
hosts: localhost
tasks:
- name: Delete
decort_disk:
# Параметры для авторизации упущены
id: "{{ disk_id }}"
state: absent
```
#### Безвозвратно
```
- name: Example
hosts: localhost
tasks:
- name: Delete permanently
decort_disk:
# Параметры для авторизации упущены
id: "{{ disk_id }}"
permanently: true
state: absent
```
### Восстановить из корзины
```
- name: Example
hosts: localhost
tasks:
- name: Restore
decort_disk:
# Параметры для авторизации упущены
id: "{{ disk_id }}"
state: present
```
### Изменить
#### Имя
```
- name: Example
hosts: localhost
tasks:
- name: Change name
decort_disk:
# Параметры для авторизации упущены
id: "{{ disk_id }}"
name: "{{ disk_new_name }}"
```
#### Размер
```
- name: Example
hosts: localhost
tasks:
- name: Change size
decort_disk:
# Параметры для авторизации упущены
id: "{{ disk_id }}"
size: "{{ disk_new_size }}"
```
#### Лимиты ввода/вывода
```
- name: Example
hosts: localhost
tasks:
- name: Change IO limits
decort_disk:
# Параметры для авторизации упущены
id: "{{ disk_id }}"
limitIO:
read_bytes_sec: "{{ read_bytes_sec }}"
write_bytes_sec: "{{ write_bytes_sec }}"
read_iops_sec: "{{ read_iops_sec }}"
write_iops_sec: "{{ write_iops_sec }}"
read_bytes_sec_max: "{{ read_bytes_sec_max }}"
write_bytes_sec_max: "{{ write_bytes_sec_max }}"
read_iops_sec_max: "{{ read_iops_sec_max }}"
write_iops_sec_max: "{{ write_iops_sec_max }}"
size_iops_sec: "{{ size_iops_sec }}"
```
#### Политику хранения
```
- name: Example
hosts: localhost
tasks:
- name: Change storage policy
decort_disk:
# Параметры для авторизации упущены
id: "{{ disk_id }}"
storage_policy_id: "{{ disk_new_storage_policy_id }}"
```
#### Включить/отключить общий доступ
```
- name: Example
hosts: localhost
tasks:
- name: Change shareable
decort_disk:
# Параметры для авторизации упущены
id: "{{ disk_id }}"
shareable: "{{ shareable }}"
```