You've already forked mariadb-columnstore-engine
mirror of
https://github.com/mariadb-corporation/mariadb-columnstore-engine.git
synced 2025-08-01 06:46:55 +03:00
MCOL-4011 Add support for SM into systemd units.
This commit is contained in:
@ -20,6 +20,7 @@ configure_file("${CMAKE_CURRENT_SOURCE_DIR}/mcs-writeengineserver.service.in" "$
|
|||||||
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/mcs-dmlproc.service.in" "${CMAKE_CURRENT_SOURCE_DIR}/mcs-dmlproc.service" @ONLY)
|
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/mcs-dmlproc.service.in" "${CMAKE_CURRENT_SOURCE_DIR}/mcs-dmlproc.service" @ONLY)
|
||||||
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/mcs-ddlproc.service.in" "${CMAKE_CURRENT_SOURCE_DIR}/mcs-ddlproc.service" @ONLY)
|
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/mcs-ddlproc.service.in" "${CMAKE_CURRENT_SOURCE_DIR}/mcs-ddlproc.service" @ONLY)
|
||||||
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/mcs-loadbrm.service.in" "${CMAKE_CURRENT_SOURCE_DIR}/mcs-loadbrm.service" @ONLY)
|
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/mcs-loadbrm.service.in" "${CMAKE_CURRENT_SOURCE_DIR}/mcs-loadbrm.service" @ONLY)
|
||||||
|
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/mcs-storagemanager.service.in" "${CMAKE_CURRENT_SOURCE_DIR}/mcs-storagemanager.service" @ONLY)
|
||||||
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/mcs-stop-controllernode.sh.in" "${CMAKE_CURRENT_SOURCE_DIR}/mcs-stop-controllernode.sh" @ONLY)
|
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/mcs-stop-controllernode.sh.in" "${CMAKE_CURRENT_SOURCE_DIR}/mcs-stop-controllernode.sh" @ONLY)
|
||||||
|
|
||||||
install(PROGRAMS columnstore-post-install
|
install(PROGRAMS columnstore-post-install
|
||||||
@ -44,6 +45,8 @@ install(PROGRAMS columnstore-post-install
|
|||||||
mariadb-command-line.sh
|
mariadb-command-line.sh
|
||||||
mcs_module_installer.sh
|
mcs_module_installer.sh
|
||||||
mcs-stop-controllernode.sh
|
mcs-stop-controllernode.sh
|
||||||
|
mcs-loadbrm.py
|
||||||
|
mcs-start-storagemanager.py
|
||||||
DESTINATION ${ENGINE_BINDIR} COMPONENT columnstore-engine)
|
DESTINATION ${ENGINE_BINDIR} COMPONENT columnstore-engine)
|
||||||
|
|
||||||
install(FILES mariadb-columnstore.service
|
install(FILES mariadb-columnstore.service
|
||||||
@ -62,6 +65,7 @@ install(FILES mariadb-columnstore.service
|
|||||||
mcs-dmlproc.service
|
mcs-dmlproc.service
|
||||||
mcs-ddlproc.service
|
mcs-ddlproc.service
|
||||||
mcs-loadbrm.service
|
mcs-loadbrm.service
|
||||||
|
mcs-storagemanager.service
|
||||||
DESTINATION ${ENGINE_SUPPORTDIR} COMPONENT columnstore-engine)
|
DESTINATION ${ENGINE_SUPPORTDIR} COMPONENT columnstore-engine)
|
||||||
|
|
||||||
install(FILES module DESTINATION ${ENGINE_DATADIR}/local COMPONENT columnstore-engine)
|
install(FILES module DESTINATION ${ENGINE_DATADIR}/local COMPONENT columnstore-engine)
|
||||||
|
@ -105,6 +105,9 @@ if [ $user = "root" ]; then
|
|||||||
cp @ENGINE_SUPPORTDIR@/mcs-writeengineserver.service /lib/systemd/system/. >/dev/null 2>&1
|
cp @ENGINE_SUPPORTDIR@/mcs-writeengineserver.service /lib/systemd/system/. >/dev/null 2>&1
|
||||||
cp @ENGINE_SUPPORTDIR@/mcs-loadbrm.service /usr/lib/systemd/system/. >/dev/null 2>&1
|
cp @ENGINE_SUPPORTDIR@/mcs-loadbrm.service /usr/lib/systemd/system/. >/dev/null 2>&1
|
||||||
cp @ENGINE_SUPPORTDIR@/mcs-loadbrm.service /lib/systemd/system/. >/dev/null 2>&1
|
cp @ENGINE_SUPPORTDIR@/mcs-loadbrm.service /lib/systemd/system/. >/dev/null 2>&1
|
||||||
|
cp @ENGINE_SUPPORTDIR@/mcs-storagemanager.service /usr/lib/systemd/system/. >/dev/null 2>&1
|
||||||
|
cp @ENGINE_SUPPORTDIR@/mcs-storagemanager.service /lib/systemd/system/. >/dev/null 2>&1
|
||||||
|
|
||||||
|
|
||||||
systemctl enable mariadb-columnstore >/dev/null 2>&1
|
systemctl enable mariadb-columnstore >/dev/null 2>&1
|
||||||
systemctl enable mcs-controllernode > /dev/null 2>&1
|
systemctl enable mcs-controllernode > /dev/null 2>&1
|
||||||
@ -115,6 +118,7 @@ if [ $user = "root" ]; then
|
|||||||
systemctl enable mcs-workernode > /dev/null 2>&1
|
systemctl enable mcs-workernode > /dev/null 2>&1
|
||||||
systemctl enable mcs-writeengineserver > /dev/null 2>&1
|
systemctl enable mcs-writeengineserver > /dev/null 2>&1
|
||||||
systemctl enable mcs-loadbrm > /dev/null 2>&1
|
systemctl enable mcs-loadbrm > /dev/null 2>&1
|
||||||
|
systemctl enable mcs-storagemanager > /dev/null 2>&1
|
||||||
else
|
else
|
||||||
chkconfig=`which chkconfig 2>/dev/null`
|
chkconfig=`which chkconfig 2>/dev/null`
|
||||||
if [ -n "$chkconfig" ]; then
|
if [ -n "$chkconfig" ]; then
|
||||||
|
@ -17,7 +17,7 @@ systemctl cat mariadb-columnstore.service > /dev/null 2>&1
|
|||||||
if [ $? -eq 0 ] && [ $(running_systemd) -eq 0 ]; then
|
if [ $? -eq 0 ] && [ $(running_systemd) -eq 0 ]; then
|
||||||
systemctl stop mariadb-columnstore >/dev/null 2>&1
|
systemctl stop mariadb-columnstore >/dev/null 2>&1
|
||||||
else
|
else
|
||||||
PROGS='load_brm workernode controllernode PrimProc ExeMgr DMLProc DDLProc WriteEngineServer'
|
PROGS='StorageManager workernode controllernode PrimProc ExeMgr DMLProc DDLProc WriteEngineServer'
|
||||||
kill $(pidof $PROGS) > /dev/null
|
kill $(pidof $PROGS) > /dev/null
|
||||||
sleep 3
|
sleep 3
|
||||||
kill -9 $(pidof $PROGS) > /dev/null
|
kill -9 $(pidof $PROGS) > /dev/null
|
||||||
@ -70,6 +70,7 @@ if [ -n "$systemctl" ] && [ $(running_systemd) -eq 0 ]; then
|
|||||||
systemctl disable mcs-workernode > /dev/null 2>&1
|
systemctl disable mcs-workernode > /dev/null 2>&1
|
||||||
systemctl disable mcs-writeengineserver > /dev/null 2>&1
|
systemctl disable mcs-writeengineserver > /dev/null 2>&1
|
||||||
systemctl disable mcs-loadbrm > /dev/null 2>&1
|
systemctl disable mcs-loadbrm > /dev/null 2>&1
|
||||||
|
systemctl disable mcs-storagemanager > /dev/null 2>&1
|
||||||
|
|
||||||
rm -f /usr/lib/systemd/system/mariadb-columnstore.service
|
rm -f /usr/lib/systemd/system/mariadb-columnstore.service
|
||||||
rm -f /lib/systemd/system/mariadb-columnstore.service
|
rm -f /lib/systemd/system/mariadb-columnstore.service
|
||||||
@ -89,6 +90,9 @@ if [ -n "$systemctl" ] && [ $(running_systemd) -eq 0 ]; then
|
|||||||
rm -f /lib/systemd/system/mcs-writeengineserver.service
|
rm -f /lib/systemd/system/mcs-writeengineserver.service
|
||||||
rm -f /usr/lib/systemd/system/mcs-loadbrm.service
|
rm -f /usr/lib/systemd/system/mcs-loadbrm.service
|
||||||
rm -f /lib/systemd/system/mcs-loadbrm.service
|
rm -f /lib/systemd/system/mcs-loadbrm.service
|
||||||
|
rm -f /usr/lib/systemd/system/mcs-storagemanager.service
|
||||||
|
rm -f /lib/systemd/system/mcs-storagemanager.service
|
||||||
|
|
||||||
systemctl daemon-reload
|
systemctl daemon-reload
|
||||||
else
|
else
|
||||||
chkconfig=`which chkconfig 2>/dev/null`
|
chkconfig=`which chkconfig 2>/dev/null`
|
||||||
|
60
oam/install_scripts/mcs-loadbrm.py
Normal file
60
oam/install_scripts/mcs-loadbrm.py
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
|
import configparser
|
||||||
|
import subprocess
|
||||||
|
|
||||||
|
config = configparser.ConfigParser()
|
||||||
|
config.read('/etc/columnstore/storagemanager.cnf')
|
||||||
|
|
||||||
|
storage = config['ObjectStorage']['service']
|
||||||
|
region = config['S3']['region']
|
||||||
|
bucket = config['S3']['bucket']
|
||||||
|
loadbrm = '/usr/bin/load_brm /var/lib/columnstore/data1/systemFiles/dbrm/{0}'
|
||||||
|
brm_saves_current = ''
|
||||||
|
|
||||||
|
if storage.lower() == 's3' and not region.lower() == 'some_region' and not bucket.lower == 'some_bucket':
|
||||||
|
# load s3
|
||||||
|
brm = 'data1/systemFiles/dbrm/BRM_saves_current'
|
||||||
|
|
||||||
|
try:
|
||||||
|
brm_saves_current = subprocess.check_output(['smcat', brm])
|
||||||
|
except subprocess.CalledProcessError as e:
|
||||||
|
# will happen when brm file does not exist
|
||||||
|
pass
|
||||||
|
else:
|
||||||
|
import xml.etree.ElementTree as ET
|
||||||
|
tree = ET.parse('/etc/columnstore/Columnstore.xml')
|
||||||
|
root = tree.getroot()
|
||||||
|
pmCount = int(root.find("./SystemModuleConfig/ModuleCount3").text)
|
||||||
|
brm = '/var/lib/columnstore/data1/systemFiles/dbrm/BRM_saves_current'
|
||||||
|
|
||||||
|
if pmCount > 1:
|
||||||
|
# load multinode dbrm
|
||||||
|
try:
|
||||||
|
brm_saves_current = subprocess.check_output(['cat', brm])
|
||||||
|
|
||||||
|
if not brm_saves_current:
|
||||||
|
# local dbrm empty, need to pull from main node
|
||||||
|
pass
|
||||||
|
except subprocess.CalledProcessError as e:
|
||||||
|
# will happen when brm file does not exist
|
||||||
|
pass
|
||||||
|
else:
|
||||||
|
# load local dbrm
|
||||||
|
try:
|
||||||
|
brm_saves_current = subprocess.check_output(['cat', brm])
|
||||||
|
except subprocess.CalledProcessError as e:
|
||||||
|
# will happen when brm file does not exist
|
||||||
|
pass
|
||||||
|
|
||||||
|
if brm_saves_current:
|
||||||
|
cmd = loadbrm.format(brm_saves_current.decode('utf-8'))
|
||||||
|
try:
|
||||||
|
retcode = subprocess.call(cmd, shell=True)
|
||||||
|
if retcode < 0:
|
||||||
|
#print("Child was terminated by signal", -retcode, file=sys.stderr)
|
||||||
|
pass
|
||||||
|
|
||||||
|
except OSError as e:
|
||||||
|
#print("Execution failed:", e, file=sys.stderr)
|
||||||
|
pass
|
@ -2,12 +2,11 @@
|
|||||||
Description=loadbrm
|
Description=loadbrm
|
||||||
PartOf=mcs-workernode.service
|
PartOf=mcs-workernode.service
|
||||||
Before=mcs-workernode.service
|
Before=mcs-workernode.service
|
||||||
ConditionPathExists=/var/lib/columnstore/data1/systemFiles/dbrm/BRM_saves_current
|
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
Type=simple
|
Type=simple
|
||||||
Environment="SKIP_OAM_INIT=1"
|
Environment="SKIP_OAM_INIT=1"
|
||||||
ExecStart=/usr/bin/env bash -c "/usr/bin/load_brm /var/lib/columnstore/data1/systemFiles/dbrm/$(cat /var/lib/columnstore/data1/systemFiles/dbrm/BRM_saves_current)"
|
ExecStart=@ENGINE_BINDIR@/mcs-loadbrm.py
|
||||||
|
|
||||||
[Install]
|
[Install]
|
||||||
WantedBy=mariadb-columnstore.service
|
WantedBy=mariadb-columnstore.service
|
||||||
|
15
oam/install_scripts/mcs-start-storagemanager.py
Normal file
15
oam/install_scripts/mcs-start-storagemanager.py
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
|
import configparser
|
||||||
|
import sys
|
||||||
|
|
||||||
|
config = configparser.ConfigParser()
|
||||||
|
config.read('/etc/columnstore/storagemanager.cnf')
|
||||||
|
|
||||||
|
storage = config['ObjectStorage']['service']
|
||||||
|
region = config['S3']['region']
|
||||||
|
bucket = config['S3']['bucket']
|
||||||
|
|
||||||
|
if storage.lower() == 's3' and not region.lower() == 'some_region' and not bucket.lower == 'some_bucket':
|
||||||
|
sys.exit(0)
|
||||||
|
sys.exit(1)
|
16
oam/install_scripts/mcs-storagemanager.service.in
Normal file
16
oam/install_scripts/mcs-storagemanager.service.in
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=storagemanager
|
||||||
|
PartOf=mcs-workernode.service
|
||||||
|
Before=mcs-workernode.service
|
||||||
|
ConditionPathExists=/etc/columnstore/storagemanager.cnf
|
||||||
|
# FailureAction="exit"
|
||||||
|
# FailureActionExitStatus=0
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=simple
|
||||||
|
ExecStartPre=@ENGINE_BINDIR@/mcs-start-storagemanager.py
|
||||||
|
ExecStart=/usr/bin/env bash -c "LD_PRELOAD=$(ldconfig -p | grep -m1 libjemalloc | awk '{print $1}') exec @ENGINE_BINDIR@/StorageManager"
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=mariadb-columnstore.service
|
||||||
|
WantedBy=mcs-workernode.service
|
Reference in New Issue
Block a user