diff --git a/debian/control b/debian/control index eaddcadb..6b1c5637 100644 --- a/debian/control +++ b/debian/control @@ -18,7 +18,7 @@ Description: Vitastor, a fast software-defined clustered block storage Package: vitastor-osd Architecture: amd64 -Depends: ${shlibs:Depends}, ${misc:Depends}, vitastor-client (= ${binary:Version}) +Depends: ${shlibs:Depends}, ${misc:Depends}, vitastor-client (= ${binary:Version}), fdisk, util-linux, parted Description: Vitastor, a fast software-defined clustered block storage - object storage daemon Vitastor object storage daemon, i.e. server program that stores data. diff --git a/debian/vitastor-client.install b/debian/vitastor-client.install index 49ca5dad..16b93faa 100644 --- a/debian/vitastor-client.install +++ b/debian/vitastor-client.install @@ -4,4 +4,3 @@ usr/bin/vitastor-rm usr/bin/vitastor-nbd usr/bin/vitastor-nfs usr/lib/*/libvitastor*.so* -mon/make-osd.sh /usr/lib/vitastor diff --git a/debian/vitastor-osd.install b/debian/vitastor-osd.install index e304446b..bce2fb9c 100644 --- a/debian/vitastor-osd.install +++ b/debian/vitastor-osd.install @@ -1,3 +1,5 @@ usr/bin/vitastor-osd usr/bin/vitastor-disk usr/bin/vitastor-dump-journal +mon/vitastor-osd@.service /lib/systemd/system +mon/90-vitastor.rules /lib/udev/rules.d diff --git a/docs/intro/quickstart.en.md b/docs/intro/quickstart.en.md index 84751b6f..f02ff02a 100644 --- a/docs/intro/quickstart.en.md +++ b/docs/intro/quickstart.en.md @@ -40,11 +40,9 @@ On the monitor hosts: } ``` - Initialize OSDs: - - Simplest, SSD-only: `/usr/lib/vitastor/mon/make-osd.sh /dev/disk/by-partuuid/XXX [/dev/disk/by-partuuid/YYY ...]` - **Warning!** This very simple script by default makes units for server-grade SSDs with write-through cache! - If it's not your case, you MUST remove disable_data_fsync and immediate_commit from systemd units. - - 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. + - SSD-only: `vitastor-disk prepare /dev/sdXXX [/dev/sdYYY ...]` + - Hybrid, SSD+HDD: `vitastor-disk prepare --hybrid /dev/sdXXX [/dev/sdYYY ...]`. + 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. diff --git a/docs/intro/quickstart.ru.md b/docs/intro/quickstart.ru.md index 6759410c..c5dbae31 100644 --- a/docs/intro/quickstart.ru.md +++ b/docs/intro/quickstart.ru.md @@ -47,12 +47,10 @@ } ``` - Инициализуйте OSD: - - SSD: `/usr/lib/vitastor/make-osd.sh /dev/disk/by-partuuid/XXX [/dev/disk/by-partuuid/YYY ...]`. \ - **Внимание!** Скрипт по умолчанию рассчитан на то, что у вас диски с конденсаторами и отключённым - кэшем! Если это не так, из юнитов systemd нужно убрать строчки disable_data_fsync и immediate_commit! - - Гибридные, HDD+SSD: `/usr/lib/vitastor/mon/make-osd-hybrid.js /dev/sda /dev/sdb ...` - передайте - все ваши SSD и HDD скрипту в командной строке подряд, скрипт автоматически выделит разделы под - журналы на SSD и данные на HDD. Скрипт пропускает HDD, на которых уже есть разделы + - SSD: `vitastor-disk prepare /dev/sdXXX [/dev/sdYYY ...]` + - Гибридные, SSD+HDD: `vitastor-disk prepare --hybrid /dev/sdXXX [/dev/sdYYY ...]`. + Передайте все ваши SSD и HDD скрипту в командной строке подряд, скрипт автоматически выделит + разделы под журналы на SSD и данные на HDD. Скрипт пропускает HDD, на которых уже есть разделы или вообще какие-то данные, поэтому если диски непустые, сначала очистите их с помощью `wipefs -a`. SSD с таблицей разделов не пропускаются, но так как скрипт создаёт новые разделы для журналов, на SSD должно быть доступно свободное нераспределённое место. diff --git a/rpm/vitastor-el7.spec b/rpm/vitastor-el7.spec index 2282d1a4..ff8ab37b 100644 --- a/rpm/vitastor-el7.spec +++ b/rpm/vitastor-el7.spec @@ -36,6 +36,8 @@ Requires: libJerasure2 Requires: libisa-l Requires: liburing >= 0.6 Requires: vitastor-client = %{version}-%{release} +Requires: util-linux +Requires: parted %description -n vitastor-osd @@ -102,8 +104,11 @@ cd mon npm install cd .. mkdir -p %buildroot/usr/lib/vitastor -cp mon/make-osd.sh %buildroot/usr/lib/vitastor cp -r mon %buildroot/usr/lib/vitastor +mkdir -p %buildroot/lib/systemd/system +cp mon/vitastor-osd@.service %buildroot/lib/systemd/system +mkdir -p %buildroot/lib/udev/rules.d +cp mon/90-vitastor.rules %buildroot/lib/udev/rules.d %files @@ -114,6 +119,8 @@ cp -r mon %buildroot/usr/lib/vitastor %_bindir/vitastor-osd %_bindir/vitastor-disk %_bindir/vitastor-dump-journal +/lib/systemd/system/vitastor-osd@.service +/lib/udev/rules.d/90-vitastor.rules %files -n vitastor-mon @@ -128,7 +135,6 @@ cp -r mon %buildroot/usr/lib/vitastor %_bindir/vita %_libdir/libvitastor_blk.so* %_libdir/libvitastor_client.so* -/usr/lib/vitastor/make-osd.sh %files -n vitastor-client-devel diff --git a/rpm/vitastor-el8.spec b/rpm/vitastor-el8.spec index bca1ad38..6cec9eaa 100644 --- a/rpm/vitastor-el8.spec +++ b/rpm/vitastor-el8.spec @@ -35,6 +35,8 @@ Requires: libJerasure2 Requires: libisa-l Requires: liburing >= 0.6 Requires: vitastor-client = %{version}-%{release} +Requires: util-linux +Requires: parted %description -n vitastor-osd @@ -99,8 +101,11 @@ cd mon npm install cd .. mkdir -p %buildroot/usr/lib/vitastor -cp mon/make-osd.sh %buildroot/usr/lib/vitastor cp -r mon %buildroot/usr/lib/vitastor +mkdir -p %buildroot/lib/systemd/system +cp mon/vitastor-osd@.service %buildroot/lib/systemd/system +mkdir -p %buildroot/lib/udev/rules.d +cp mon/90-vitastor.rules %buildroot/lib/udev/rules.d %files @@ -111,6 +116,8 @@ cp -r mon %buildroot/usr/lib/vitastor %_bindir/vitastor-osd %_bindir/vitastor-disk %_bindir/vitastor-dump-journal +/lib/systemd/system/vitastor-osd@.service +/lib/udev/rules.d/90-vitastor.rules %files -n vitastor-mon @@ -125,7 +132,6 @@ cp -r mon %buildroot/usr/lib/vitastor %_bindir/vita %_libdir/libvitastor_blk.so* %_libdir/libvitastor_client.so* -/usr/lib/vitastor/make-osd.sh %files -n vitastor-client-devel