<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Руководства по подсистеме хранения on Cozystack</title><link>https://cozystack.ru/docs/v1.5/storage/</link><description>Recent content in Руководства по подсистеме хранения on Cozystack</description><generator>Hugo</generator><language>en</language><atom:link href="https://cozystack.ru/docs/v1.5/storage/index.xml" rel="self" type="application/rss+xml"/><item><title>Подготовка дисков для пулов хранения LINSTOR</title><link>https://cozystack.ru/docs/v1.5/storage/disk-preparation/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://cozystack.ru/docs/v1.5/storage/disk-preparation/</guid><description>&lt;p&gt;В этом руководстве описано, как подготовить физические диски к использованию с LINSTOR, если на них остались старые метаданные, мешающие автоматическому обнаружению.&lt;/p&gt;
&lt;h2 id="описание-проблемы"&gt;Описание проблемы&lt;/h2&gt;
&lt;p&gt;При настройке хранилища на новых или повторно используемых узлах на физических дисках могут оставаться следы предыдущих установок:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;суперблоки RAID&lt;/li&gt;
&lt;li&gt;таблицы разделов&lt;/li&gt;
&lt;li&gt;сигнатуры LVM&lt;/li&gt;
&lt;li&gt;метаданные файловых систем&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Эти старые метаданные не позволяют LINSTOR определить диски как доступное хранилище.&lt;/p&gt;
&lt;h3 id="симптомы"&gt;Симптомы&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;linstor physical-storage list&lt;/code&gt; выводит пустой список или в нём отсутствуют диски&lt;/li&gt;
&lt;li&gt;Диски отображаются с неожиданными типами файловых систем (например, &lt;code&gt;linux_raid_member&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;В пулах хранения виден только &lt;code&gt;DfltDisklessStorPool&lt;/code&gt; без фактического хранилища&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="диагностика"&gt;Диагностика&lt;/h2&gt;
&lt;h3 id="настройка-псевдонима-для-linstor"&gt;Настройка псевдонима для LINSTOR&lt;/h3&gt;
&lt;p&gt;Для удобного доступа к командам LINSTOR настройте псевдоним:&lt;/p&gt;</description></item><item><title>Настройка выделенной сети для LINSTOR</title><link>https://cozystack.ru/docs/v1.5/storage/dedicated-network/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://cozystack.ru/docs/v1.5/storage/dedicated-network/</guid><description>&lt;p&gt;В этом руководстве описано, как повысить надёжность и производительность хранилища, перенаправив трафик репликации LINSTOR
на выделенный сетевой интерфейс.&lt;/p&gt;
&lt;h2 id="введение"&gt;Введение&lt;/h2&gt;
&lt;p&gt;Платформа Cozystack создана для поддержки высокодоступных (HA) рабочих нагрузок,
а значит, система должна продолжать работать, даже если один или несколько узлов выйдут из строя.
Kubernetes хорошо справляется с этим для нагрузок без сохранения состояния (stateless).
Однако нагрузкам с сохранением состояния (stateful), таким как файловые хранилища или диски виртуальных машин, требуется надёжная система хранения.&lt;/p&gt;</description></item><item><title>Настройка контроллера ресинхронизации DRBD в LINSTOR</title><link>https://cozystack.ru/docs/v1.5/storage/drbd-tuning/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://cozystack.ru/docs/v1.5/storage/drbd-tuning/</guid><description>&lt;p&gt;Администраторы Cozystack могут регулировать производительность синхронизации DRBD, задавая параметры настройки
для контроллера LINSTOR.&lt;/p&gt;
&lt;p&gt;Это позволяет оптимизировать скорость ресинхронизации, не перегружая сеть репликации и систему хранения.&lt;/p&gt;
&lt;p&gt;Подробное описание всех доступных параметров и рекомендации по настройке приведены в официальном руководстве LINBIT:

&lt;a href="https://kb.linbit.com/drbd/tuning-the-drbd-resync-controller/" target="_blank"&gt;Tuning the DRBD Resync Controller&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Для конфигурации с несколькими дата-центрами также прочитайте руководство 
&lt;a href="https://cozystack.ru/docs/v1.5/operations/stretched/drbd-tuning/" target="_blank"&gt;Настройка DRBD для нескольких дата-центров&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="рекомендуемые-настройки-для-сетей-10g"&gt;Рекомендуемые настройки для сетей 10G&lt;/h2&gt;
&lt;p&gt;Мы считаем следующие значения оптимальными для кластеров, соединённых 10-гигабитной сетью:&lt;/p&gt;</description></item><item><title>Использование NFS-ресурсов в Cozystack</title><link>https://cozystack.ru/docs/v1.5/storage/nfs/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://cozystack.ru/docs/v1.5/storage/nfs/</guid><description>&lt;h2 id="включение-драйвера-nfs"&gt;Включение драйвера NFS&lt;/h2&gt;
&lt;p&gt;Добавьте &lt;code&gt;cozystack.nfs-driver&lt;/code&gt; в &lt;code&gt;bundles.enabledPackages&lt;/code&gt; в 
&lt;a href="https://cozystack.ru/docs/v1.5/operations/configuration/platform-package/" target="_blank"&gt;Platform Package&lt;/a&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f0f0f0;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;kubectl patch packages.cozystack.io cozystack.cozystack-platform --type&lt;span style="color:#666"&gt;=&lt;/span&gt;json &lt;span style="color:#4070a0;font-weight:bold"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; -p &lt;span style="color:#4070a0"&gt;&amp;#39;[{&amp;#34;op&amp;#34;: &amp;#34;add&amp;#34;, &amp;#34;path&amp;#34;: &amp;#34;/spec/components/platform/values/bundles/enabledPackages/-&amp;#34;, &amp;#34;value&amp;#34;: &amp;#34;cozystack.nfs-driver&amp;#34;}]&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Подождите около минуты, пока чарт платформы выполнит согласование, затем убедитесь, что HelmRelease создан:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f0f0f0;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;kubectl get helmrelease --namespace cozy-nfs-driver nfs-driver
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="экспорт-общего-ресурса"&gt;Экспорт общего ресурса&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f0f0f0;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;apt install nfs-server
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mkdir /data
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;chmod &lt;span style="color:#40a070"&gt;777&lt;/span&gt; /data
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#007020"&gt;echo&lt;/span&gt; &lt;span style="color:#4070a0"&gt;&amp;#39;/data *(rw,sync,no_subtree_check)&amp;#39;&lt;/span&gt; &amp;gt;&amp;gt; /etc/exports
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;exportfs -a
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="настройка-подключения"&gt;Настройка подключения&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f0f0f0;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#0e84b5;font-weight:bold"&gt;---&lt;/span&gt;&lt;span style="color:#bbb"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#062873;font-weight:bold"&gt;apiVersion&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;storage.k8s.io/v1&lt;span style="color:#bbb"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#062873;font-weight:bold"&gt;kind&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;StorageClass&lt;span style="color:#bbb"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#062873;font-weight:bold"&gt;metadata&lt;/span&gt;:&lt;span style="color:#bbb"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#062873;font-weight:bold"&gt;name&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;nfs&lt;span style="color:#bbb"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#062873;font-weight:bold"&gt;provisioner&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;nfs.csi.k8s.io&lt;span style="color:#bbb"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#062873;font-weight:bold"&gt;parameters&lt;/span&gt;:&lt;span style="color:#bbb"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#062873;font-weight:bold"&gt;server&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#40a070"&gt;10.244.57.210&lt;/span&gt;&lt;span style="color:#bbb"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#062873;font-weight:bold"&gt;share&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;/data&lt;span style="color:#bbb"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#062873;font-weight:bold"&gt;reclaimPolicy&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;Delete&lt;span style="color:#bbb"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#062873;font-weight:bold"&gt;volumeBindingMode&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;Immediate&lt;span style="color:#bbb"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#062873;font-weight:bold"&gt;allowVolumeExpansion&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#007020;font-weight:bold"&gt;true&lt;/span&gt;&lt;span style="color:#bbb"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#062873;font-weight:bold"&gt;mountOptions&lt;/span&gt;:&lt;span style="color:#bbb"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#bbb"&gt; &lt;/span&gt;- nfsvers=4.1&lt;span style="color:#bbb"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="заказ-тома"&gt;Заказ тома&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f0f0f0;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#062873;font-weight:bold"&gt;apiVersion&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;v1&lt;span style="color:#bbb"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#062873;font-weight:bold"&gt;kind&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;PersistentVolumeClaim&lt;span style="color:#bbb"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#062873;font-weight:bold"&gt;metadata&lt;/span&gt;:&lt;span style="color:#bbb"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#062873;font-weight:bold"&gt;name&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;task-pv-claim&lt;span style="color:#bbb"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#062873;font-weight:bold"&gt;spec&lt;/span&gt;:&lt;span style="color:#bbb"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#062873;font-weight:bold"&gt;storageClassName&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;nfs&lt;span style="color:#bbb"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#062873;font-weight:bold"&gt;accessModes&lt;/span&gt;:&lt;span style="color:#bbb"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#bbb"&gt; &lt;/span&gt;- ReadWriteMany&lt;span style="color:#bbb"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#062873;font-weight:bold"&gt;resources&lt;/span&gt;:&lt;span style="color:#bbb"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#062873;font-weight:bold"&gt;requests&lt;/span&gt;:&lt;span style="color:#bbb"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#062873;font-weight:bold"&gt;storage&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;3Gi&lt;span style="color:#bbb"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>LINSTOR GUI</title><link>https://cozystack.ru/docs/v1.5/storage/linstor-gui/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://cozystack.ru/docs/v1.5/storage/linstor-gui/</guid><description>&lt;p&gt;Пакет &lt;code&gt;linstor-gui&lt;/code&gt; развёртывает 
&lt;a href="https://github.com/LINBIT/linstor-gui" target="_blank"&gt;LINSTOR GUI от LINBIT&lt;/a&gt; - веб-консоль
для просмотра и управления узлами LINSTOR, определениями ресурсов, томами, пулами хранения и снимками.
Интерфейс проксирует REST API контроллера LINSTOR внутри кластера с использованием mTLS, поэтому учётные данные никогда не попадают в браузер.&lt;/p&gt;
&lt;p&gt;Пакет является &lt;strong&gt;опциональным&lt;/strong&gt; и включается по требованию. Рабочий процесс с CLI не меняется - включение GUI никак не влияет на поведение LINSTOR.&lt;/p&gt;
&lt;h2 id="включение-пакета"&gt;Включение пакета&lt;/h2&gt;
&lt;p&gt;Добавьте &lt;code&gt;cozystack.linstor-gui&lt;/code&gt; в &lt;code&gt;bundles.enabledPackages&lt;/code&gt; в 
&lt;a href="https://cozystack.ru/docs/v1.5/operations/configuration/platform-package/" target="_blank"&gt;Platform Package&lt;/a&gt;:&lt;/p&gt;</description></item><item><title>Создание шифрованного хранилища на LINSTOR</title><link>https://cozystack.ru/docs/v1.5/storage/disk-encryption/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://cozystack.ru/docs/v1.5/storage/disk-encryption/</guid><description>&lt;p&gt;Администраторы Cozystack могут включить шифрованное хранилище, создав собственный StorageClass.
В этом руководстве описано, как задать парольную фразу шифрования, создать шифрованный класс хранения и использовать его в приложениях.&lt;/p&gt;
&lt;p&gt;LINSTOR обеспечивает шифрование постоянных томов at-rest с помощью 
&lt;a href="https://linbit.com/drbd-user-guide/linstor-guide-1_0-en/#s-linstor-encrypted-volumes" target="_blank"&gt;LUKS&lt;/a&gt;.
Это гарантирует, что данные на диске хранятся в зашифрованном виде и доступны только тогда, когда том смонтирован и разблокирован.&lt;/p&gt;
&lt;h2 id="настройка-шифрования-в-linstor"&gt;Настройка шифрования в LINSTOR&lt;/h2&gt;
&lt;p&gt;Чтобы начать использовать шифрование, задайте парольную фразу шифрования в LINSTOR.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f0f0f0;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;kubectl &lt;span style="color:#007020"&gt;exec&lt;/span&gt; -i -t -n cozy-linstor deploy/linstor-controller -- linstor encryption create-passphrase 
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;div class="alert alert-warning" role="alert"&gt;


 &amp;#x26a0;&amp;#xfe0f; Сохраните парольную фразу в надёжном месте.&lt;br/&gt;
Если вы потеряете парольную фразу шифрования, все зашифрованные данные будут безвозвратно утеряны.

&lt;/div&gt;

&lt;p&gt;Парольную фразу нужно вводить каждый раз после перезапуска контроллера LINSTOR.
Для ввода парольной фразы используйте следующую команду:&lt;/p&gt;</description></item></channel></rss>