From 0edc6fe5a6a49eff6cc45ea2293dd34f7dba4527 Mon Sep 17 00:00:00 2001 From: Vitaliy Filippov Date: Sun, 3 Apr 2022 13:04:34 +0300 Subject: [PATCH] Add notes about the new script --- README-ru.md | 9 ++++++++- README.md | 8 +++++++- mon/make-osd.sh | 8 ++++++-- 3 files changed, 21 insertions(+), 4 deletions(-) diff --git a/README-ru.md b/README-ru.md index 6943bcdb..7a21d3ed 100644 --- a/README-ru.md +++ b/README-ru.md @@ -414,7 +414,14 @@ Vitastor с однопоточной NBD прокси на том же стен "osd_network": "10.200.1.0/24" } ``` -- Создайте юниты systemd для OSD: `/usr/lib/vitastor/make-osd.sh /dev/disk/by-partuuid/XXX [/dev/disk/by-partuuid/YYY ...]` +- Инициализуйте OSD: + - SSD: `/usr/lib/vitastor/make-osd.sh /dev/disk/by-partuuid/XXX [/dev/disk/by-partuuid/YYY ...]` + - Гибридные, HDD+SSD: `/usr/lib/vitastor/mon/make-osd-hybrid.js /dev/sda /dev/sdb ...` - передайте + все ваши SSD и HDD скрипту в командной строке подряд, скрипт автоматически выделит разделы под + журналы на SSD и данные на HDD. Скрипт пропускает HDD, на которых уже есть разделы + или вообще какие-то данные, поэтому если диски непустые, сначала очистите их с помощью + `wipefs -a`. SSD с таблицей разделов не пропускаются, но так как скрипт создаёт новые разделы + для журналов, на SSD должно быть доступно свободное нераспределённое место. - Вы можете менять параметры OSD в юнитах systemd или в `vitastor.conf`. Смысл некоторых параметров: - `disable_data_fsync 1` - отключает fsync, используется с SSD с конденсаторами. - `immediate_commit all` - используется с SSD с конденсаторами. diff --git a/README.md b/README.md index 7ba93094..7444449c 100644 --- a/README.md +++ b/README.md @@ -367,7 +367,13 @@ and calculate disk offsets almost by hand. This will be fixed in near future. "osd_network": "10.200.1.0/24" } ``` -- Create systemd units for your OSDs: `/usr/lib/vitastor/mon/make-osd.sh /dev/disk/by-partuuid/XXX [/dev/disk/by-partuuid/YYY ...]` +- Initialize OSDs: + - Simplest, SSD-only: `/usr/lib/vitastor/mon/make-osd.sh /dev/disk/by-partuuid/XXX [/dev/disk/by-partuuid/YYY ...]` + - Hybrid, HDD+SSD: `/usr/lib/vitastor/mon/make-osd-hybrid.js /dev/sda /dev/sdb ...` - pass all your + devices (HDD and SSD) to this script - it will partition disks and initialize journals on its own. + This script skips HDDs which are already partitioned so if you want to use non-empty disks for + Vitastor you should first wipe them with `wipefs -a`. SSDs with GPT partition table are not skipped, + but some free unpartitioned space must be available because the script creates new partitions for journals. - You can change OSD configuration in units or in `vitastor.conf`. Notable configuration variables: - `disable_data_fsync 1` - only safe with server-grade drives with capacitors. - `immediate_commit all` - use this if all your drives are server-grade. diff --git a/mon/make-osd.sh b/mon/make-osd.sh index b7cd67e5..d68eda3a 100755 --- a/mon/make-osd.sh +++ b/mon/make-osd.sh @@ -25,6 +25,10 @@ OPT=$(vitastor-cli simple-offsets --format options $DEV | tr '\n' ' ') META=$(vitastor-cli simple-offsets --format json $DEV | jq .data_offset) dd if=/dev/zero of=$DEV bs=1048576 count=$(((META+1048575)/1048576)) oflag=direct +mkdir -p /var/log/vitastor +id vitastor &>/dev/null || useradd vitastor +chown vitastor /var/log/vitastor + cat >/etc/systemd/system/vitastor-osd$OSD_NUM.service <>/var/log/vitastor/osd$OSD_NUM.log 2>&1' WorkingDirectory=/ ExecStartPre=+chown vitastor:vitastor $DEV User=vitastor