Цеф. какой osd выбран для фактического возврата данных из него (логика ceph)
Я использую кластер nginx->radosgw->ceph, где каждый фрагмент размещенных данных лежит на 3 OSD одновременно (каждый OSD является отдельным OSD-сервером). Весь кластер содержит 9 OSD-серверов. Ceph v10 (если это имеет значение)
Скажем, моя часть данных представляет собой небольшой файл размером 5 КБ. Кластер в нормальном состоянии.
ВОПРОС: Когда я ПОЛУЧАЮ (запрашиваю) мой фрагмент данных из моего кластера через nginx-> radosgw, какое OSD выбрано для получения актуальной информации с дисков SSD?
Это ОДИН "основной" OSD, который возвращает целые 5 КБ данных?
Это ВСЕ 3 OSD, которые содержат этот фрагмент, который возвращает целые 5 КБ данных из каждых 3 OSD одновременно?
Это ЛЮБОЕ, но одно из 3 OSD, которое содержит этот кусок 5 КБ данных, которые выбраны для возврата фактических данных, и данные могут быть возвращены из любого из 3 OSD, но только из ОДНОГО выбранного OSD вернет целые 5 КБ данных?
Это ЛЮБОЕ из 3 OSD, которое содержит этот фрагмент данных 5 КБ, который возвращает, скажем, osd1 возвращает 1 КБ + osd2 возвращает 3 КБ + osd8 возвращает 1 КБ = 5 КБ в целом?
В чем логика?
Спасибо за ваше терпение с вариантами чтения выше. Заранее спасибо за ответы.
1 ответ
ВОПРОС: Когда я ПОЛУЧАЮ (запрашиваю) мой фрагмент данных из моего кластера через nginx->radosgw, какое OSD выбрано для получения актуальной информации с дисков SSD?
Клиент всегда направляет запросы на чтение и запись в основное экранное меню. Для остальной части работы, основной OSD отвечает.
Таким образом, в случае реплицируемого пула основное экранное меню будет отвечать на запрос напрямую, полагаясь только на свое локальное хранилище. Весь объект будет считан из основного OSD, другие OSD не будут задействованы.
В случае кодированных пулов стирания клиент также будет запрашивать данные из основного OSD, когда основное OSD получило все порции данных от других задействованных OSD, основное OSD будет обслуживать объект в целом клиенту. В случае отсутствия фрагментов основное OSD также будет запрашивать фрагменты четности для декодирования данных.