forked from vitalif/vitastor
Remove kludgy $IP and $ETCD_MON parsing from make-osd.sh, suggest to use vitastor.conf
parent
7a0b5212fe
commit
d5c8fde5de
17
README-ru.md
17
README-ru.md
|
@ -403,12 +403,21 @@ Vitastor с однопоточной NBD прокси на том же стен
|
||||||
в этом случае пострадает.
|
в этом случае пострадает.
|
||||||
- Быстрая сеть, минимум 10 гбит/с
|
- Быстрая сеть, минимум 10 гбит/с
|
||||||
- Для наилучшей производительности нужно отключить энергосбережение CPU: `cpupower idle-set -D 0 && cpupower frequency-set -g performance`.
|
- Для наилучшей производительности нужно отключить энергосбережение CPU: `cpupower idle-set -D 0 && cpupower frequency-set -g performance`.
|
||||||
- Пропишите нужные вам значения вверху файлов `/usr/lib/vitastor/mon/make-units.sh` и `/usr/lib/vitastor/mon/make-osd.sh`.
|
- На хостах мониторов:
|
||||||
- Создайте юниты systemd для etcd и мониторов: `/usr/lib/vitastor/mon/make-units.sh`
|
- Пропишите нужные вам значения в файле `/usr/lib/vitastor/mon/make-units.sh`
|
||||||
- Создайте юниты для OSD: `/usr/lib/vitastor/mon/make-osd.sh /dev/disk/by-partuuid/XXX [/dev/disk/by-partuuid/YYY ...]`
|
- Создайте юниты systemd для etcd и мониторов: `/usr/lib/vitastor/mon/make-units.sh`
|
||||||
- Вы можете поменять параметры OSD в юнитах systemd. Смысл некоторых параметров:
|
- Пропишите etcd_address и osd_network в `/etc/vitastor/vitastor.conf`. Например:
|
||||||
|
```
|
||||||
|
{
|
||||||
|
"etcd_address": ["10.200.1.10:2379","10.200.1.11:2379","10.200.1.12:2379"],
|
||||||
|
"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 в юнитах systemd или в `vitastor.conf`. Смысл некоторых параметров:
|
||||||
- `disable_data_fsync 1` - отключает fsync, используется с SSD с конденсаторами.
|
- `disable_data_fsync 1` - отключает fsync, используется с SSD с конденсаторами.
|
||||||
- `immediate_commit all` - используется с SSD с конденсаторами.
|
- `immediate_commit all` - используется с SSD с конденсаторами.
|
||||||
|
Внимание: если установлено, также нужно установить его в то же значение в etcd в /vitastor/config/global
|
||||||
- `disable_device_lock 1` - отключает блокировку файла устройства, нужно, только если вы запускаете
|
- `disable_device_lock 1` - отключает блокировку файла устройства, нужно, только если вы запускаете
|
||||||
несколько OSD на одном блочном устройстве.
|
несколько OSD на одном блочном устройстве.
|
||||||
- `flusher_count 256` - "flusher" - микропоток, удаляющий старые данные из журнала.
|
- `flusher_count 256` - "flusher" - микропоток, удаляющий старые данные из журнала.
|
||||||
|
|
16
README.md
16
README.md
|
@ -356,13 +356,21 @@ and calculate disk offsets almost by hand. This will be fixed in near future.
|
||||||
with lazy fsync, but prepare for inferior single-thread latency.
|
with lazy fsync, but prepare for inferior single-thread latency.
|
||||||
- Get a fast network (at least 10 Gbit/s).
|
- Get a fast network (at least 10 Gbit/s).
|
||||||
- Disable CPU powersaving: `cpupower idle-set -D 0 && cpupower frequency-set -g performance`.
|
- Disable CPU powersaving: `cpupower idle-set -D 0 && cpupower frequency-set -g performance`.
|
||||||
- Check `/usr/lib/vitastor/mon/make-units.sh` and `/usr/lib/vitastor/mon/make-osd.sh` and
|
- On the monitor hosts:
|
||||||
put desired values into the variables at the top of these files.
|
- Edit variables at the top of `/usr/lib/vitastor/mon/make-units.sh` to desired values.
|
||||||
- Create systemd units for the monitor and etcd: `/usr/lib/vitastor/mon/make-units.sh`
|
- Create systemd units for the monitor and etcd: `/usr/lib/vitastor/mon/make-units.sh`
|
||||||
|
- Put etcd_address and osd_network into `/etc/vitastor/vitastor.conf`. Example:
|
||||||
|
```
|
||||||
|
{
|
||||||
|
"etcd_address": ["10.200.1.10:2379","10.200.1.11:2379","10.200.1.12:2379"],
|
||||||
|
"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 ...]`
|
- Create systemd units for your OSDs: `/usr/lib/vitastor/mon/make-osd.sh /dev/disk/by-partuuid/XXX [/dev/disk/by-partuuid/YYY ...]`
|
||||||
- You can edit the units and change OSD configuration. Notable configuration variables:
|
- 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.
|
- `disable_data_fsync 1` - only safe with server-grade drives with capacitors.
|
||||||
- `immediate_commit all` - use this if all your drives are server-grade.
|
- `immediate_commit all` - use this if all your drives are server-grade.
|
||||||
|
If all OSDs have it set to all then you should also put the same value in etcd into /vitastor/config/global
|
||||||
- `disable_device_lock 1` - only required if you run multiple OSDs on one block device.
|
- `disable_device_lock 1` - only required if you run multiple OSDs on one block device.
|
||||||
- `flusher_count 256` - flusher is a micro-thread that removes old data from the journal.
|
- `flusher_count 256` - flusher is a micro-thread that removes old data from the journal.
|
||||||
You don't have to worry about this parameter anymore, 256 is enough.
|
You don't have to worry about this parameter anymore, 256 is enough.
|
||||||
|
|
|
@ -4,18 +4,16 @@
|
||||||
# Copyright (c) Vitaliy Filippov, 2019+
|
# Copyright (c) Vitaliy Filippov, 2019+
|
||||||
# License: MIT
|
# License: MIT
|
||||||
|
|
||||||
# USAGE: ./make-osd.sh /dev/disk/by-partuuid/xxx [ /dev/disk/by-partuuid/yyy]...
|
# USAGE:
|
||||||
|
# 1) Put etcd_address and osd_network into /etc/vitastor/vitastor.conf. Example:
|
||||||
IP_SUBSTR="10.200.1."
|
# {
|
||||||
ETCD_HOSTS="etcd0=http://10.200.1.10:2380,etcd1=http://10.200.1.11:2380,etcd2=http://10.200.1.12:2380"
|
# "etcd_address":["http://10.200.1.10:2379/v3","http://10.200.1.11:2379/v3","http://10.200.1.12:2379/v3"],
|
||||||
|
# "osd_network":"10.200.1.0/24"
|
||||||
|
# }
|
||||||
|
# 2) Run ./make-osd.sh /dev/disk/by-partuuid/xxx [ /dev/disk/by-partuuid/yyy]...
|
||||||
|
|
||||||
set -e -x
|
set -e -x
|
||||||
|
|
||||||
IP=`ip -json a s | jq -r '.[].addr_info[] | select(.local | startswith("'$IP_SUBSTR'")) | .local'`
|
|
||||||
[ "$IP" != "" ] || exit 1
|
|
||||||
ETCD_MON=$(echo $ETCD_HOSTS | perl -pe 's/:2380/:2379/g; s/etcd\d*=//g;')
|
|
||||||
D=`dirname $0`
|
|
||||||
|
|
||||||
# Create OSDs on all passed devices
|
# Create OSDs on all passed devices
|
||||||
for DEV in $*; do
|
for DEV in $*; do
|
||||||
|
|
||||||
|
@ -39,8 +37,6 @@ LimitNOFILE=1048576
|
||||||
LimitNPROC=1048576
|
LimitNPROC=1048576
|
||||||
LimitMEMLOCK=infinity
|
LimitMEMLOCK=infinity
|
||||||
ExecStart=/usr/bin/vitastor-osd \\
|
ExecStart=/usr/bin/vitastor-osd \\
|
||||||
--etcd_address $IP:2379/v3 \\
|
|
||||||
--bind_address $IP \\
|
|
||||||
--osd_num $OSD_NUM \\
|
--osd_num $OSD_NUM \\
|
||||||
--disable_data_fsync 1 \\
|
--disable_data_fsync 1 \\
|
||||||
--immediate_commit all \\
|
--immediate_commit all \\
|
||||||
|
|
Loading…
Reference in New Issue