dm-writeboost¶
- https://github.com/akiradeveloper/dm-writeboost
Aquesta configuració d'exemple no utilitza DRBD, és només una configuració simple de dm-writeboost.
Instal·lació a CentOS 7¶
DKMS¶
Mòdul DKMS de Writeboost¶
Clonar repositori:
Comprovar que DKMS de Writeboost està instal·lat:
Eines de Writeboost¶
git clone https://github.com/akiradeveloper/dm-writeboost-tools
yum install cargo
cargo install
cp /root/.cargo/bin/* /usr/sbin/
Reiniciar i comprovar la instal·lació del mòdul
Crear nova memòria cau Writeboost¶
wbcreate --reformat --read_cache_threshold=127 --writeback_threshold=80 storage /dev/md0 /dev/nvme0n1
- storage: nom del nou dispositiu de memòria cau
- md0: discs lents
- nvme0n1: discs ràpids (dispositiu de memòria cau)
Crear writeboosttab i servei¶
vi /etc/writeboosttab
## Fitxer "tab" (mapejos) de dm-writeboost, vegeu writeboosttab(5).
##{Nom objectiu DM} {dispositiu de blocs en memòria cau p.ex. HDD} {dispositiu de blocs de memòria cau p.ex. SSD} [opcions]
##
## wb_hdd /dev/disk/by-uuid/2e8260bc-024c-4252-a695-a73898c974c7 /dev/disk/by-partuuid/43372b68-3407-45fa-9b2f-61afe9c26a68 writeback_threshold=70,sync_data_interval=3600
##
storage /dev/md0 /dev/nvme0n1 writeback_threshold=80,read_cache_threshold=127
Aquest és un fitxer d'unitat systemd d'exemple de writeboost:
systemctl daemon-reload systemctl enable writeboostDRBD9 sobre Writeboost¶
Per utilitzar writeboost en una configuració drbd hauríem de crear un dispositiu de memòria cau writeboost a cada node drbd i després utilitzar aquest dispositiu de memòria cau com a pv per al grup de volums drbdpool de drbd9. Així drbd9 s'executarà sobre un dispositiu de memòria cau muntat a cada node. I aquest és el fitxer de servei writeboost modificat que utilitzem quan drbd9 s'utilitza sobre writeboost:
[Unit]
Description=Mapeador (dm-)writeboost
Documentation=man:writeboost
#DefaultDependencies=false
#Conflicts=shutdown.target
## "Before=local-fs-pre" és significatiu ja que influeix en l'ordre correcte
## d'aturada (després del desmuntatge).
#Before=shutdown.target drbd.service cryptsetup.target local-fs-pre.target
#Before=shutdown.target cryptsetup.target local-fs-pre.target
Before=shutdown.target drbdmanaged.service
[Service]
Type=oneshot
## Ha de romandre després de la sortida per evitar aturar-se just després d'iniciar
## i per aturar-se en l'apagada.
RemainAfterExit=yes
## L'escaneig de dispositius de memòria cau pot trigar molt de temps després d'una aturada no neta.
TimeoutStartSec=3600
ExecStart=/usr/bin/bash -c '/usr/sbin/writeboost; lvscan; lvchange -ay /dev/drbdpool/data_00'
ExecStop=/usr/sbin/writeboost -u
## Un "TimeoutStop" llarg és essencial ja que pot passar un bloqueig si writeboost
## és eliminat durant el buidat de memòries cau en l'apagada, etc.
TimeoutStopSec=3600
StandardOutput=syslog+console
[Install]
#WantedBy=cryptsetup.target
#WantedBy=local-fs.target
WantedBy=drbdmanaged.service
#Alias=dm-writeboost.service