<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="4.4.1">Jekyll</generator><link href="https://santona.ru/feed.xml" rel="self" type="application/atom+xml" /><link href="https://santona.ru/" rel="alternate" type="text/html" /><updated>2026-02-20T14:05:53+00:00</updated><id>https://santona.ru/feed.xml</id><title type="html">santona.ru</title><subtitle>Мои заметки</subtitle><entry><title type="html">Работа с несколькими Ceph-кластерами на одном хосте</title><link href="https://santona.ru/ceph/2026/02/20/multiple-ceph-clusters-on-one-host.html" rel="alternate" type="text/html" title="Работа с несколькими Ceph-кластерами на одном хосте" /><published>2026-02-20T12:31:00+00:00</published><updated>2026-02-20T12:31:00+00:00</updated><id>https://santona.ru/ceph/2026/02/20/multiple-ceph-clusters-on-one-host</id><content type="html" xml:base="https://santona.ru/ceph/2026/02/20/multiple-ceph-clusters-on-one-host.html"><![CDATA[<p>Если вам нужно подключаться к нескольким кластерам Ceph (например, <code class="language-plaintext highlighter-rouge">dev</code> и <code class="language-plaintext highlighter-rouge">prod</code>) с одного сервера — важно правильно организовать конфигурацию и ключи доступа.</p>

<h2 id="структура-конфигураций">Структура конфигураций</h2>

<p>Для каждого кластера создаём:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>{cluster}.conf
{cluster}.client.{user}.keyring
</code></pre></div></div>

<p>Пример:</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>/etc/ceph/
├─ dev.conf
├─ dev.client.admin.keyring
├─ prod.conf
└─ prod.client.user.keyring
</code></pre></div></div>

<p>Такой подход позволяет:</p>

<ul>
  <li>изолировать кластеры</li>
  <li>использовать разных пользователей</li>
  <li>избежать конфликтов конфигурации</li>
  <li>явно указывать, к какому кластеру идёт обращение</li>
</ul>

<h2 id="пример-конфигурации-кластера">Пример конфигурации кластера</h2>

<h3 id="etccephdevconf"><code class="language-plaintext highlighter-rouge">/etc/ceph/dev.conf</code></h3>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c"># minimal ceph.conf for xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx</span>
<span class="o">[</span>global]
        fsid <span class="o">=</span> xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
        mon_host <span class="o">=</span> <span class="se">\</span>
<span class="o">[</span>v2:192.168.93.10:3300/0,v1:192.168.93.10:6789/0]<span class="se">\</span>
<span class="o">[</span>v2:192.168.32.1:3300/0,v1:192.168.32.1:6789/0]<span class="se">\</span>
<span class="o">[</span>v2:192.168.93.11:3300/0,v1:192.168.93.11:6789/0]<span class="se">\</span>
<span class="o">[</span>v2:192.168.32.2:3300/0,v1:192.168.32.2:6789/0]<span class="se">\</span>
<span class="o">[</span>v2:192.168.93.12:3300/0,v1:192.168.93.12:6789/0]<span class="se">\</span>
<span class="o">[</span>v2:192.168.32.3:3300/0,v1:192.168.32.3:6789/0]<span class="se">\</span>
<span class="o">[</span>v2:192.168.93.13:3300/0,v1:192.168.93.13:6789/0]<span class="se">\</span>
<span class="o">[</span>v2:192.168.32.4:3300/0,v1:192.168.32.4:6789/0]
</code></pre></div></div>

<p>Минимально достаточно:</p>

<ul>
  <li><code class="language-plaintext highlighter-rouge">fsid</code></li>
  <li><code class="language-plaintext highlighter-rouge">mon_host</code></li>
</ul>

<p>Остальные параметры обычно подтягиваются автоматически от мониторов.</p>

<h2 id="пример-keyring">Пример keyring</h2>

<h3 id="etccephdevclientadminkeyring"><code class="language-plaintext highlighter-rouge">/etc/ceph/dev.client.admin.keyring</code></h3>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="o">[</span>client.admin]
        key <span class="o">=</span> <span class="nv">xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx</span><span class="o">==</span>
        caps mds <span class="o">=</span> <span class="s2">"allow *"</span>
        caps mgr <span class="o">=</span> <span class="s2">"allow *"</span>
        caps mon <span class="o">=</span> <span class="s2">"allow *"</span>
        caps osd <span class="o">=</span> <span class="s2">"allow *"</span>
</code></pre></div></div>

<p>Если используется не <code class="language-plaintext highlighter-rouge">client.admin</code>, а, например, <code class="language-plaintext highlighter-rouge">client.user</code>, то:</p>

<ul>
  <li>имя файла должно соответствовать шаблону</li>
  <li>в командах нужно явно указывать пользователя через <code class="language-plaintext highlighter-rouge">-n</code></li>
</ul>

<h2 id="проверка-пулов">Проверка пулов</h2>

<p>Работа с пулами через <code class="language-plaintext highlighter-rouge">rbd</code>:</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>rbd <span class="nb">ls</span> <span class="o">{</span>poolname<span class="o">}</span> <span class="nt">--cluster</span> dev
rbd <span class="nb">ls</span> <span class="o">{</span>poolname<span class="o">}</span> <span class="nt">--cluster</span> prod <span class="nt">-n</span> client.user
</code></pre></div></div>

<p>Если имя клиента отличается от <code class="language-plaintext highlighter-rouge">client.admin</code>, обязательно указываем:</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nt">-n</span> client.<span class="o">{</span>user<span class="o">}</span>
</code></pre></div></div>

<p>Иначе будет попытка использовать <code class="language-plaintext highlighter-rouge">client.admin</code>.</p>

<h2 id="алиасы-для-удобства">Алиасы для удобства</h2>

<p>Чтобы не писать каждый раз <code class="language-plaintext highlighter-rouge">--cluster</code> и <code class="language-plaintext highlighter-rouge">-n</code>, можно добавить алиасы:</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c"># dev</span>
<span class="nb">alias </span>rbd-dev<span class="o">=</span><span class="s1">'rbd -n client.admin --cluster dev'</span>
<span class="nb">alias </span>ceph-dev<span class="o">=</span><span class="s1">'ceph -n client.admin --cluster dev'</span>

<span class="c"># prod</span>
<span class="nb">alias </span>rbd-prod<span class="o">=</span><span class="s1">'rbd -n client.user --cluster prod'</span>
<span class="nb">alias </span>ceph-prod<span class="o">=</span><span class="s1">'ceph -n client.user --cluster prod'</span>
</code></pre></div></div>

<p>Теперь команды становятся чище:</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>ceph-dev <span class="nb">df
</span>rbd-dev <span class="nb">ls</span> <span class="o">{</span>pool-name<span class="o">}</span>

ceph-prod <span class="nb">df
</span>rbd-prod <span class="nb">ls</span> <span class="o">{</span>pool-name<span class="o">}</span>
</code></pre></div></div>]]></content><author><name></name></author><category term="ceph" /><summary type="html"><![CDATA[Если вам нужно подключаться к нескольким кластерам Ceph (например, dev и prod) с одного сервера — важно правильно организовать конфигурацию и ключи доступа.]]></summary></entry><entry><title type="html">Установка youtrack в docker контейнере</title><link href="https://santona.ru/docker/youtrack/2025/03/12/install.html" rel="alternate" type="text/html" title="Установка youtrack в docker контейнере" /><published>2025-03-12T12:31:00+00:00</published><updated>2025-03-12T12:31:00+00:00</updated><id>https://santona.ru/docker/youtrack/2025/03/12/install</id><content type="html" xml:base="https://santona.ru/docker/youtrack/2025/03/12/install.html"><![CDATA[<p>Создаем папки для монтирования в контейнере в /opt/yt_data/</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">mkdir</span> <span class="nt">-p</span> <span class="nt">-m</span> 750 /opt/yt_data/<span class="o">{</span>data,logs,conf,backups<span class="o">}</span>
</code></pre></div></div>

<p>Устанавливаем владельца на эти папки</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">chown </span>13001:13001 /opt/yt_data/<span class="o">{</span>data,logs,conf,backups<span class="o">}</span>
</code></pre></div></div>

<p>Запускаем контейнер</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>docker run <span class="nt">-it</span> <span class="nt">-d</span> <span class="nt">--name</span> yt-1 <span class="se">\</span>
<span class="nt">-v</span> /opt/yt_data/yt_data/data:/opt/youtrack/data <span class="se">\</span>
<span class="nt">-v</span> /opt/yt_data/yt_data/conf:/opt/youtrack/conf <span class="se">\</span>
<span class="nt">-v</span> /opt/yt_data/yt_data/logs:/opt/youtrack/logs <span class="se">\</span>
<span class="nt">-v</span> /opt/yt_data/yt_data/backups:/opt/youtrack/backups <span class="se">\ </span>
<span class="nt">-p</span> 127.0.0.1:8080:8080 <span class="se">\</span>
jetbrains/youtrack:2025.1.64291

</code></pre></div></div>]]></content><author><name></name></author><category term="docker" /><category term="youtrack" /><summary type="html"><![CDATA[Создаем папки для монтирования в контейнере в /opt/yt_data/ mkdir -p -m 750 /opt/yt_data/{data,logs,conf,backups}]]></summary></entry></feed>