Merge 'Mount RAID volume correctly beyond reboot' from Takuya
" To mount RAID volume correctly (#6876), we need to wait for MDRAID initialization. To do so we need to add After=mdmonitor.service on var-lib-scylla.mount. Also, `lsblk -n -oPARTTYPE {dev}` does not work for CentOS7, since older lsblk does not supported PARTTYPE column (#6954). We need to provide relocatable lsblk and run it on out() / run() function instead of distribution provided version. " * syuu1228-scylla_raid_setup_mount_correctly_beyond_reboot: scylla_raid_setup: initialize MDRAID before mounting data volume create-relocatable-package.py: add lsblk for relocatable CLI tools scylla_util.py: always use relocatable CLI tools
This commit is contained in:
9
dist/common/scripts/scylla_raid_setup
vendored
9
dist/common/scripts/scylla_raid_setup
vendored
@@ -129,6 +129,7 @@ if __name__ == '__main__':
|
||||
res = out('mdadm --detail --scan')
|
||||
with open(confpath, 'w') as f:
|
||||
f.write(res)
|
||||
f.write('\nMAILADDR root')
|
||||
|
||||
makedirs(mount_at)
|
||||
mntunit_bn = out('systemd-escape -p --suffix=mount {}'.format(mount_at))
|
||||
@@ -138,11 +139,14 @@ if __name__ == '__main__':
|
||||
sys.exit(1)
|
||||
|
||||
uuid = out(f'blkid -s UUID -o value {fsdev}')
|
||||
after = 'local-fs.target'
|
||||
if raid:
|
||||
after += ' mdmonitor.service'
|
||||
unit_data = f'''
|
||||
[Unit]
|
||||
Description=Scylla data directory
|
||||
Before=scylla-server.service
|
||||
After=local-fs.target
|
||||
After={after}
|
||||
|
||||
[Mount]
|
||||
What=UUID={uuid}
|
||||
@@ -165,6 +169,9 @@ WantedBy=multi-user.target
|
||||
f.write(f'RequiresMountsFor={mount_at}\n')
|
||||
|
||||
systemd_unit.reload()
|
||||
mdmonitor = systemd_unit('mdmonitor.service')
|
||||
mdmonitor.enable()
|
||||
mdmonitor.start()
|
||||
mount = systemd_unit(mntunit_bn)
|
||||
mount.start()
|
||||
if args.enable_on_nextboot:
|
||||
|
||||
2
dist/common/scripts/scylla_util.py
vendored
2
dist/common/scripts/scylla_util.py
vendored
@@ -331,7 +331,7 @@ class scylla_cpuinfo:
|
||||
|
||||
# When a CLI tool is not installed, use relocatable CLI tool provided by Scylla
|
||||
scylla_env = os.environ.copy()
|
||||
scylla_env['PATH'] = '{}:{}'.format(scylla_env['PATH'], scyllabindir())
|
||||
scylla_env['PATH'] = '{}:{}'.format(scyllabindir(), scylla_env['PATH'])
|
||||
|
||||
def run(cmd, shell=False, silent=False, exception=True):
|
||||
stdout = subprocess.DEVNULL if silent else None
|
||||
|
||||
@@ -94,7 +94,8 @@ executables = ['build/{}/scylla'.format(args.mode),
|
||||
'/usr/sbin/ethtool',
|
||||
'/usr/bin/netstat',
|
||||
'/usr/bin/hwloc-distrib',
|
||||
'/usr/bin/hwloc-calc']
|
||||
'/usr/bin/hwloc-calc',
|
||||
'/usr/bin/lsblk']
|
||||
|
||||
output = args.dest
|
||||
|
||||
|
||||
Reference in New Issue
Block a user