More documentation
This commit is contained in:
+6
-2
@@ -26,11 +26,15 @@ Vitastor поддерживает QEMU-драйвер, протоколы UBLK,
|
||||
|
||||
## Презентации и записи докладов
|
||||
|
||||
- KuberConf'2025: [видео](https://vitastor.io/presentation/kuberconf.webm)
|
||||
- Highload'2025: [видео](https://vitastor.io/presentation/hl2025/hl2025.webm),
|
||||
[на youtube](https://www.youtube.com/watch?v=0R8MLjFtz7g), презентация
|
||||
([на русском](https://vitastor.io/presentation/hl2025/), [на английском](https://vitastor.io/presentation/hl2025/en.html))
|
||||
- Highload'2022: презентация ([на русском](https://vitastor.io/presentation/highload/highload.html)),
|
||||
[видео](https://vitastor.io/presentation/highload/talk.webm)
|
||||
- DevOpsConf'2021: презентация ([на русском](https://vitastor.io/presentation/devopsconf/devopsconf.html),
|
||||
[на английском](https://vitastor.io/presentation/devopsconf/devopsconf_en.html)),
|
||||
[видео](https://vitastor.io/presentation/devopsconf/talk.webm)
|
||||
- Highload'2022: презентация ([на русском](https://vitastor.io/presentation/highload/highload.html)),
|
||||
[видео](https://vitastor.io/presentation/highload/talk.webm)
|
||||
|
||||
## Документация
|
||||
|
||||
|
||||
@@ -26,11 +26,15 @@ Read more details in the documentation. You can start from here: [Quick Start](d
|
||||
|
||||
## Talks and presentations
|
||||
|
||||
- KuberConf'2025: [video](https://vitastor.io/presentation/kuberconf.webm)
|
||||
- Highload'2025: [video](https://vitastor.io/presentation/hl2025/hl2025.webm),
|
||||
[youtube](https://www.youtube.com/watch?v=0R8MLjFtz7g), presentation
|
||||
([in Russian](https://vitastor.io/presentation/hl2025/), [in English](https://vitastor.io/presentation/hl2025/en.html))
|
||||
- Highload'2022: presentation ([in Russian](https://vitastor.io/presentation/highload/highload.html)),
|
||||
[video](https://vitastor.io/presentation/highload/talk.webm)
|
||||
- DevOpsConf'2021: presentation ([in Russian](https://vitastor.io/presentation/devopsconf/devopsconf.html),
|
||||
[in English](https://vitastor.io/presentation/devopsconf/devopsconf_en.html)),
|
||||
[video](https://vitastor.io/presentation/devopsconf/talk.webm)
|
||||
- Highload'2022: presentation ([in Russian](https://vitastor.io/presentation/highload/highload.html)),
|
||||
[video](https://vitastor.io/presentation/highload/talk.webm)
|
||||
|
||||
## Documentation
|
||||
|
||||
|
||||
@@ -676,12 +676,20 @@ Retry interval for failed PG lock attempts.
|
||||
|
||||
Maximum data device atomic write size allowed for OSD to use.
|
||||
|
||||
Only affects the new metadata store ([meta_format](layout-osd.en.md#meta_format)=3).
|
||||
Atomic writes allow to reduce the Write Amplification factor with the new store
|
||||
([meta_format](layout-osd.en.md#meta_format)=3) to almost 1 (i.e. almost no extra writes)
|
||||
with replicated pools and reach the best possible write performance.
|
||||
|
||||
Default value is auto-detected during OSD initialization from
|
||||
`/sys/block/xx/queue/atomic_write_max_bytes` or assumed to be 4096 bytes
|
||||
because all known disks support 4 KB atomic writes.
|
||||
|
||||
You can also check if your NVMe drives support atomic writes by running
|
||||
the command `nvme id-ctrl /dev/nvme0n1 | grep awupf`. If the reported value,
|
||||
plus 1, multiplied by the currently selected block size of the NVMe,
|
||||
is more than 4 KB, then the new store can utilize it for better performance.
|
||||
The only drives known to support it currently are [Micron and Kioxia](../intro/quickstart.en.md).
|
||||
|
||||
Atomic writes allow to skip double data writes in replicated pools, thus
|
||||
reducing Write Amplification and improving write performance up to 2 times.
|
||||
|
||||
|
||||
+11
-1
@@ -709,12 +709,22 @@ pg_minsize OSD во время переключений, что может по
|
||||
|
||||
Максимальный размер атомарной записи на диск данных, который OSD разрешено использовать.
|
||||
|
||||
Затрагивает только новое хранилище ([meta_format](layout-osd.ru.md#meta_format)=3).
|
||||
Поддержка атомарной записи позволяет снизить мультипликатор записи (Write Amplification)
|
||||
на диск с новым хранилищем ([meta_format](layout-osd.ru.md#meta_format)=3)
|
||||
практически до 1 (то есть, почти до нулевого объёма лишней записи) в реплицированных
|
||||
пулах и достигнуть наилучшей возможной производительности записи.
|
||||
|
||||
Значение по умолчанию авто-определяется во время инициализации OSD из
|
||||
`/sys/block/xx/queue/atomic_write_max_bytes` либо принимается равным 4096,
|
||||
так как все известные диски поддерживают атомарную запись 4 КБ блоков.
|
||||
|
||||
Вы также можете проверить, поддерживают ли ваши NVMe-диски атомарную запись,
|
||||
с помощью команды `nvme id-ctrl /dev/nvme0n1 | grep awupf`. Если значение awupf
|
||||
плюс 1, умноженное на текущий выбранный размер блока NVMe-диска, больше 4 КБ,
|
||||
то новое хранилище может использовать атомарные записи для достижения лучшей
|
||||
производительности. Единственные известные диски, которые поддерживают это сейчас -
|
||||
[Micron и Kioxia](../intro/quickstart.ru.md).
|
||||
|
||||
Атомарная запись позволяет не использовать двойную запись данных (в журнал и на
|
||||
устройство данных) в реплицированных пулах и таким образом снижает амплификацию
|
||||
записи (объём служебной записи на диск) и улучшает производительность записи
|
||||
|
||||
+20
-2
@@ -807,23 +807,41 @@
|
||||
info: |
|
||||
Maximum data device atomic write size allowed for OSD to use.
|
||||
|
||||
Only affects the new metadata store ([meta_format](layout-osd.en.md#meta_format)=3).
|
||||
Atomic writes allow to reduce the Write Amplification factor with the new store
|
||||
([meta_format](layout-osd.en.md#meta_format)=3) to almost 1 (i.e. almost no extra writes)
|
||||
with replicated pools and reach the best possible write performance.
|
||||
|
||||
Default value is auto-detected during OSD initialization from
|
||||
`/sys/block/xx/queue/atomic_write_max_bytes` or assumed to be 4096 bytes
|
||||
because all known disks support 4 KB atomic writes.
|
||||
|
||||
You can also check if your NVMe drives support atomic writes by running
|
||||
the command `nvme id-ctrl /dev/nvme0n1 | grep awupf`. If the reported value,
|
||||
plus 1, multiplied by the currently selected block size of the NVMe,
|
||||
is more than 4 KB, then the new store can utilize it for better performance.
|
||||
The only drives known to support it currently are [Micron and Kioxia](../intro/quickstart.en.md).
|
||||
|
||||
Atomic writes allow to skip double data writes in replicated pools, thus
|
||||
reducing Write Amplification and improving write performance up to 2 times.
|
||||
info_ru: |
|
||||
Максимальный размер атомарной записи на диск данных, который OSD разрешено использовать.
|
||||
|
||||
Затрагивает только новое хранилище ([meta_format](layout-osd.ru.md#meta_format)=3).
|
||||
Поддержка атомарной записи позволяет снизить мультипликатор записи (Write Amplification)
|
||||
на диск с новым хранилищем ([meta_format](layout-osd.ru.md#meta_format)=3)
|
||||
практически до 1 (то есть, почти до нулевого объёма лишней записи) в реплицированных
|
||||
пулах и достигнуть наилучшей возможной производительности записи.
|
||||
|
||||
Значение по умолчанию авто-определяется во время инициализации OSD из
|
||||
`/sys/block/xx/queue/atomic_write_max_bytes` либо принимается равным 4096,
|
||||
так как все известные диски поддерживают атомарную запись 4 КБ блоков.
|
||||
|
||||
Вы также можете проверить, поддерживают ли ваши NVMe-диски атомарную запись,
|
||||
с помощью команды `nvme id-ctrl /dev/nvme0n1 | grep awupf`. Если значение awupf
|
||||
плюс 1, умноженное на текущий выбранный размер блока NVMe-диска, больше 4 КБ,
|
||||
то новое хранилище может использовать атомарные записи для достижения лучшей
|
||||
производительности. Единственные известные диски, которые поддерживают это сейчас -
|
||||
[Micron и Kioxia](../intro/quickstart.ru.md).
|
||||
|
||||
Атомарная запись позволяет не использовать двойную запись данных (в журнал и на
|
||||
устройство данных) в реплицированных пулах и таким образом снижает амплификацию
|
||||
записи (объём служебной записи на диск) и улучшает производительность записи
|
||||
|
||||
@@ -14,6 +14,8 @@
|
||||
|
||||
- Basic part: highly-available block storage with symmetric clustering and no SPOF
|
||||
- [Performance](../performance/bench2.en.md) ;-D
|
||||
- [NVMe atomic write support](../config/osd.en.md#atomic_write_size) for reducing the amount
|
||||
of "extra" disk writes to almost zero (Write Amplification = 1)
|
||||
- [Multiple redundancy schemes](../config/pool.en.md#scheme): Replication, XOR n+1, Reed-Solomon erasure codes
|
||||
based on jerasure and ISA-L libraries with any number of data and parity drives in a group
|
||||
- Configuration via simple JSON data structures in etcd (parameters, pools and images)
|
||||
|
||||
@@ -14,6 +14,8 @@
|
||||
|
||||
- Базовая часть - надёжное кластерное блочное хранилище без единой точки отказа
|
||||
- [Производительность](../performance/bench2.ru.md) ;-D
|
||||
- [Поддержка атомарной записи NVMe](../config/osd.ru.md#atomic_write_size) для снижения объёма
|
||||
служебной записи практически до нуля (Write Amplification = 1)
|
||||
- [Несколько схем отказоустойчивости](../config/pool.ru.md#scheme): репликация, XOR n+1 (1 диск чётности), коды коррекции ошибок
|
||||
Рида-Соломона на основе библиотек jerasure и ISA-L с любым числом дисков данных и чётности в группе
|
||||
- Конфигурация через простые человекочитаемые JSON-структуры в etcd
|
||||
|
||||
@@ -18,9 +18,10 @@
|
||||
|
||||
## Preparation
|
||||
|
||||
- Get some SATA or NVMe SSDs with capacitors (server-grade drives). You can use desktop SSDs
|
||||
with lazy fsync, but prepare for inferior single-thread latency. Read more about capacitors
|
||||
[here](../config/layout-cluster.en.md#immediate_commit).
|
||||
- Get some SATA or NVMe SSDs with capacitors (server-grade drives). The best performance
|
||||
is achieved with Micron or Kioxia NVMes with atomic write support (see below). You can use desktop
|
||||
SSDs with lazy fsync, but prepare for inferior single-thread latency. Read more about
|
||||
capacitors [here](../config/layout-cluster.en.md#immediate_commit).
|
||||
- If you want to use HDDs, get modern HDDs with Media Cache or SSD Cache: HGST Ultrastar,
|
||||
Toshiba MG, Seagate EXOS or something similar. If your drives don't have such cache then
|
||||
you also need small SSDs for journal and metadata (even 2 GB per 1 TB of HDD space is enough).
|
||||
@@ -30,9 +31,11 @@
|
||||
|
||||
## Recommended drives
|
||||
|
||||
- SATA SSD: Micron 5100/5200/5300/5400, Samsung PM863/PM883/PM893, Intel D3-S4510/4520/4610/4620, Kingston DC500M
|
||||
- NVMe: Micron 9100/9200/9300/9400, Micron 7300/7450, Samsung PM983/PM9A3, Samsung PM1723/1735/1743,
|
||||
Intel DC-P3700/P4500/P4600, Intel D5-P4320/P5530, Intel D7-P5500/P5600, Intel Optane, Kingston DC1000B/DC1500M
|
||||
- NVMe with atomic write support (ideal!): Micron 7450/7500/7550, Kioxia CD6/CD7/CD8/CD9
|
||||
- Other NVMe: Micron 9100/9200/9300/9400/9550, Micron 7300, Samsung PM983/PM9A3, Samsung PM1723/1735/1743,
|
||||
Intel DC-P3700/P4500/P4600, Intel/Solidigm D5-P4320/P5530, Intel/Solidigm D7-P5500/P5600, Solidigm D7-PS1010/PS1030/P5810,
|
||||
Intel Optane, Kingston DC1000B/DC1500M, Kioxia CD6/CD7/CD8/CD9
|
||||
- SATA SSD: Micron 5100/5200/5300/5400, Samsung PM863/PM883/PM893, Intel/Solidigm D3-S4510/4520/4610/4620, Kingston DC500M
|
||||
- HDD: HGST Ultrastar, Toshiba MG, Seagate EXOS
|
||||
|
||||
## Configure monitors
|
||||
|
||||
@@ -18,8 +18,9 @@
|
||||
|
||||
## Подготовка
|
||||
|
||||
- Возьмите серверы с SSD (SATA или NVMe), желательно с конденсаторами (серверные SSD). Можно
|
||||
использовать и десктопные SSD, включив режим отложенного fsync, но производительность будет хуже.
|
||||
- Возьмите серверы с SSD (SATA или NVMe), желательно с конденсаторами (серверные SSD). Наилучшая
|
||||
производительность достигается на дисках Micron и Kioxia с поддержкой атомарной записи (см. ниже).
|
||||
Можно использовать и десктопные SSD, включив режим отложенного fsync, но производительность будет хуже.
|
||||
О конденсаторах читайте [здесь](../config/layout-cluster.ru.md#immediate_commit).
|
||||
- Если хотите использовать HDD, берите современные модели с Media или SSD кэшем - HGST Ultrastar,
|
||||
Toshiba MG, Seagate EXOS или что-то похожее. Если такого кэша у ваших дисков нет,
|
||||
@@ -30,9 +31,11 @@
|
||||
|
||||
## Рекомендуемые диски
|
||||
|
||||
- SATA SSD: Micron 5100/5200/5300/5400, Samsung PM863/PM883/PM893, Intel D3-S4510/4520/4610/4620, Kingston DC500M
|
||||
- NVMe: Micron 9100/9200/9300/9400, Micron 7300/7450, Samsung PM983/PM9A3, Samsung PM1723/1735/1743,
|
||||
Intel DC-P3700/P4500/P4600, Intel D5-P4320/P5530, Intel D7-P5500/P5600, Intel Optane, Kingston DC1000B/DC1500M
|
||||
- NVMe с поддержкой атомарной записи (идеально!): Micron 7450/7500/7550, Kioxia CD6/CD7/CD8/CD9
|
||||
- Другие NVMe: Micron 9100/9200/9300/9400/9550, Micron 7300, Samsung PM983/PM9A3, Samsung PM1723/1735/1743,
|
||||
Intel DC-P3700/P4500/P4600, Intel/Solidigm D5-P4320/P5530, Intel/Solidigm D7-P5500/P5600, Solidigm D7-PS1010/PS1030/P5810,
|
||||
Intel Optane, Kingston DC1000B/DC1500M, Kioxia CD6/CD7/CD8/CD9
|
||||
- SATA SSD: Micron 5100/5200/5300/5400, Samsung PM863/PM883/PM893, Intel/Solidigm D3-S4510/4520/4610/4620, Kingston DC500M
|
||||
- HDD: HGST Ultrastar, Toshiba MG, Seagate EXOS
|
||||
|
||||
## Настройте мониторы
|
||||
|
||||
@@ -14,7 +14,7 @@ Replicated setups:
|
||||
- Linear read: `min(total network bandwidth, sum(disk read MB/s))`.
|
||||
- Linear write: `min(total network bandwidth, sum(disk write MB/s / number of replicas))`.
|
||||
- Saturated parallel read iops: `min(total network bandwidth, sum(disk read iops))`.
|
||||
- Saturated parallel write iops: `min(total network bandwidth / number of replicas, sum(disk write iops / number of replicas / (write amplification = 4)))`.
|
||||
- Saturated parallel write iops: `min(total network bandwidth / number of replicas, sum(disk write iops / number of replicas / write amplification))`.
|
||||
|
||||
EC/XOR setups (EC N+K):
|
||||
- Single-threaded (T1Q1) read latency: 1.5 network roundtrips + 1 disk read.
|
||||
@@ -26,28 +26,36 @@ EC/XOR setups (EC N+K):
|
||||
- Linear read: `min(total network bandwidth, sum(disk read MB/s))`.
|
||||
- Linear write: `min(total network bandwidth, sum(disk write MB/s * N/(N+K)))`.
|
||||
- Saturated parallel read iops: `min(total network bandwidth, sum(disk read iops))`.
|
||||
- Saturated parallel write iops: roughly `total iops / (N+K) / WA`. More exactly,
|
||||
`min(total network bandwidth * N/(N+K), sum(disk randrw iops / (N*4 + K*5 + 1)))` with
|
||||
random read/write mix corresponding to `(N-1)/(N*4 + K*5 + 1)*100 % reads`.
|
||||
- For example, with EC 2+1 it is: `(7% randrw iops) / 14`.
|
||||
- With EC 6+3 it is: `(12.5% randrw iops) / 40`.
|
||||
- Saturated parallel write iops: roughly `total iops / (N+K) / WA`. More exactly:
|
||||
- With the new store: `min(total network bandwidth * N/(N+K), sum(disk randrw iops / (2 + N-1 + K*2)))`,
|
||||
with random read/write mix corresponding to `(N-1)/(2 + N-1 + K*2)*100 % reads`.
|
||||
- For example, with EC 2+1 it is: `(20% randrw iops) / 5`.
|
||||
- With EC 6+3 it is: `(38% randrw iops) / 13`.
|
||||
- With the old store: `min(total network bandwidth * N/(N+K), sum(disk randrw iops / (3 + N-1 + K*3)))`,
|
||||
with random read/write mix corresponding to `(N-1)/(3 + N-1 + K*3)*100 % reads`.
|
||||
- For example, with EC 2+1 it is: `(14% randrw iops) / 7`.
|
||||
- With EC 6+3 it is: `(30% randrw iops) / 17`.
|
||||
|
||||
Write amplification for 4 KB blocks is usually 3-5 in Vitastor:
|
||||
1. Journal block write
|
||||
2. Journal data write
|
||||
3. Metadata block write
|
||||
4. Another journal block write for EC/XOR setups
|
||||
5. Data block write
|
||||
Write Amplification factor:
|
||||
- For the new store and for 4 KB writes: WA is always 1 unless you set [atomic_write_size](../config/osd.en.md#atomic_write_size) to 0 manually.
|
||||
- For the new store and for 8-124 KB writes: WA is 1 if you use NVMe drives with atomic write support, or roughly 2 if you use other drives.
|
||||
- For the old store, WA is roughly `(2 * write size + 4 KB) / (write size)`. So, for 4 KB writes it's 3, and for 8-124 KB writes it's closer to 2.
|
||||
- For both the new and the old store and for writes of [block_size](../config/layout-cluster.en.md#block_size): WA is almost 1.
|
||||
|
||||
If you manage to get an SSD which handles 512 byte blocks well (Optane?) you may
|
||||
lower 1, 3 and 4 to 512 bytes (1/8 of data size) and get WA as low as 2.375.
|
||||
Write Amplification consists of:
|
||||
- For the new store:
|
||||
- Buffer block write if non-atomic
|
||||
- Data block write
|
||||
- Metadata write(s) (amortized)
|
||||
- For the old store:
|
||||
- Journal block write (amortized)
|
||||
- Journal data write
|
||||
- Metadata block write
|
||||
- Another journal block write for EC/XOR setups (amortized)
|
||||
- Data block write
|
||||
|
||||
Implemented NVDIMM support can basically eliminate WA at all - all extra writes will
|
||||
go to DRAM memory. But this requires a test cluster with NVDIMM - please contact me
|
||||
if you want to provide me with such cluster for tests.
|
||||
|
||||
Lazy fsync also reduces WA for parallel workloads because journal blocks are only
|
||||
written when they fill up or fsync is requested.
|
||||
Other possibilities to reduce WA would be to use SSDs with internal 512-byte blocks
|
||||
or NVDIMM, but both options seem unavailable on the market at the moment.
|
||||
|
||||
## In Practice
|
||||
|
||||
|
||||
@@ -27,29 +27,36 @@
|
||||
- Линейное чтение: сумма МБ/с чтения всех дисков, либо общая производительность сети, если в сеть упрётся раньше.
|
||||
- Линейная запись: сумма МБ/с записи всех дисков * N/(N+K), либо производительность сети * N / (N+K), если в сеть упрётся раньше.
|
||||
- Параллельное случайное мелкое чтение: сумма IOPS чтения всех дисков либо производительность сети, если в сеть упрётся раньше.
|
||||
- Параллельная случайная мелкая запись: грубо `(сумма IOPS / (N+K) / WA)`. Если точнее, то:
|
||||
сумма смешанного IOPS всех дисков при `(N-1)/(N*4 + K*5 + 1)*100 %` чтения, делённая на `(N*4 + K*5 + 1)`.
|
||||
Либо, производительность сети * N/(N+K), если в сеть упрётся раньше.
|
||||
- Например, при EC 2+1 это: `(сумма IOPS при 7% чтения) / 14`.
|
||||
- При EC 6+3 это: `(сумма IOPS при 12.5% чтения) / 40`.
|
||||
- Параллельная случайная мелкая запись: грубо `(сумма IOPS / (N+K) / WA)`.
|
||||
Либо `производительность сети * N/(N+K)`, если в сеть упрётся раньше. Если точнее, то:
|
||||
- С новым хранилищем: сумма смешанного IOPS всех дисков при `(N-1)/(2 + N-1 + K*2)*100 %` чтения, делённая на `(2 + N-1 + K*2)`.
|
||||
- Например, при EC 2+1 это: `(сумма IOPS при 20% чтения) / 5`.
|
||||
- При EC 6+3 это: `(сумма IOPS при 38% чтения) / 13`.
|
||||
- Со старым хранилищем: сумма смешанного IOPS всех дисков при `(N-1)/(3 + N-1 + K*3)*100 %` чтения, делённая на `(3 + N-1 + K*3)`.
|
||||
- Например, при EC 2+1 это: `(сумма IOPS при 14% чтения) / 7`.
|
||||
- При EC 6+3 это: `(сумма IOPS при 30% чтения) / 17`.
|
||||
|
||||
WA (мультипликатор записи) для 4 КБ блоков в Vitastor обычно составляет 3-5:
|
||||
1. Запись метаданных в журнал
|
||||
2. Запись блока данных в журнал
|
||||
3. Запись метаданных в БД
|
||||
4. Ещё одна запись метаданных в журнал при использовании EC
|
||||
5. Запись блока данных на диск данных
|
||||
WA (Write Amplification, мультипликатор записи):
|
||||
- С новым хранилищем для 4 КБ записи: WA всегда примерно 1, если только вы не установите [atomic_write_size](../config/osd.ru.md#atomic_write_size) вручную в 0.
|
||||
- С новым хранилищем и большими записями (8-124 КБ): WA примерно 1, если вы используете NVMe-диски с поддержкой атомарной записи,
|
||||
или примерно 2, если вы используете другие диски.
|
||||
- Со старым хранилищем, WA примерно `(2 * размер записи + 4 КБ) / (размер записи)`. То есть, для 4 КБ записи WA=3, а для 8-124 КБ WA ближе к 2.
|
||||
- И с новым, и со старым хранилищем и для записи размером [block_size](../config/layout-cluster.ru.md#block_size): WA примерно равен 1.
|
||||
|
||||
Если вы найдёте SSD, хорошо работающий с 512-байтными блоками данных (Optane?),
|
||||
то 1, 3 и 4 можно снизить до 512 байт (1/8 от размера данных) и получить WA всего 2.375.
|
||||
Мультипликатор записи состоит из:
|
||||
- С новым хранилищем:
|
||||
- Запись блока буфера, если диски без поддержки атомарной записи
|
||||
- Запись блока данных
|
||||
- Запись(-и) блоков метаданных (амортизированные)
|
||||
- Со старым хранилищем:
|
||||
- Запись блока журнала (амортизированная)
|
||||
- Запись данных в журнал
|
||||
- Запись блока метаданных
|
||||
- Ещё одна запись блока журнала для EC/XOR пулов (амортизированная)
|
||||
- Запись блока данных
|
||||
|
||||
Если реализовать поддержку NVDIMM, то WA можно, условно говоря, ликвидировать вообще - все
|
||||
дополнительные операции записи смогут обслуживаться DRAM памятью. Но для этого необходим
|
||||
тестовый кластер с NVDIMM - пишите, если готовы предоставить такой для тестов.
|
||||
|
||||
Кроме того, WA снижается при использовании отложенного/ленивого сброса при параллельной
|
||||
нагрузке, т.к. блоки журнала записываются на диск только когда они заполняются или явным
|
||||
образом запрашивается fsync.
|
||||
Другими потенциальными возможностями снижения WA могли бы быть SSD с внутренним 512-байтным блоком
|
||||
либо NVDIMM, но и то, и другое сейчас выглядит недоступным на рынке.
|
||||
|
||||
## На практике
|
||||
|
||||
|
||||
@@ -231,6 +231,18 @@ Upgrading from <= 0.5.x to >= 0.6.x is not supported.
|
||||
|
||||
Downgrade are also allowed freely, except the following specific instructions:
|
||||
|
||||
### 3.x -> 2.x
|
||||
|
||||
Versions 3.0.0 and newer contain two store implementations - an old one and a new
|
||||
one, unsupported in 2.x and previous versions. So you should check your OSD store
|
||||
versions before downgrading to 2.x with the following command:
|
||||
|
||||
`vitastor-disk read-sb /dev/vitastor/osdXX-data | jq -r .meta_format`
|
||||
|
||||
If it prints 3 then OSD uses the new store and you can't downgrade it to 2.x.
|
||||
|
||||
If it prints 2 or nothing then OSD uses the old store and the downgrade is allowed.
|
||||
|
||||
### 1.8.0 to 1.7.1
|
||||
|
||||
Before downgrading from version >= 1.8.0 to version <= 1.7.1
|
||||
|
||||
@@ -228,6 +228,18 @@ done
|
||||
|
||||
Откат (понижение версии) тоже свободно разрешён, кроме указанных ниже случаев:
|
||||
|
||||
### 3.x -> 2.x
|
||||
|
||||
Версии 3.0.0 и более новые содержат две реализации хранилища - старую и новую, не
|
||||
поддерживаемую в 2.x и предыдущих версиях. Таким образом, перед откатом на 2.x вам
|
||||
следует проверить, какая версия хранилища используется вашими OSD - командой:
|
||||
|
||||
`vitastor-disk read-sb /dev/vitastor/osdXX-data | jq -r .meta_format`
|
||||
|
||||
Если выводится 3, это новое хранилище и откатить такой OSD до 2.x нельзя.
|
||||
|
||||
Если выводится 2 или не выводится ничего, это старое хранилище и откат разрешён.
|
||||
|
||||
### 1.8.0 -> 1.7.1
|
||||
|
||||
Перед понижением версии с >= 1.8.0 до <= 1.7.1 вы должны скопировать ключ
|
||||
|
||||
Reference in New Issue
Block a user