[Документация](../../README-ru.md#документация) → [Конфигурация](../config.ru.md) → Метаданные образов в etcd ----- [Read in English](inode.en.md) # Метаданные образов в etcd Список образов хранится в etcd в ключах `/vitastor/config/inode//`. Вы можете даже создавать образы вручную: ``` etcdctl --endpoints= put /vitastor/config/inode// '{"name":"","size":[,"parent_id":][,"readonly":true]}' ``` Например: ``` etcdctl --endpoints=http://10.115.0.10:2379/v3 put /vitastor/config/inode/1/1 '{"name":"testimg","size":2147483648}' ``` Если вы зададите parent_id, то образ станет CoW-клоном, т.е. все новые запросы записи пойдут в новый инод, а запросы чтения будут проверять сначала его, а потом родительские слои по цепочке вверх. Чтобы случайно не перезаписать данные в родительском слое, вы можете переключить его в режим "только чтение", добавив флаг `"readonly":true` в его запись метаданных. В таком случае родительский образ становится просто снапшотом. Таким образом, для создания снапшота вам нужно просто переименовать предыдущий inode (например, из testimg в testimg@0), сделать его readonly и создать новый слой с исходным именем образа (testimg), ссылающийся на только что переименованный в качестве родительского. vitastor-cli и драйвера K8s, OpenStack и т.п. также хранят обратный маппинг в ключах `/vitastor/index/image/` в JSON-формате: `{"id":,"pool_id":}` и счётчики ID `/vitastor/index/maxid/` в виде просто чисел для упрощения генерации ID новых образов.