LINUX.ORG.RU

Сообщения dnkosiris

 

Запуск .mount после isc-dhcp-server в systemd в debian 11

Добрый день, пытаюсь разобраться с настройками systemd!

На сервере поднимается dhcp с помощью isc-dhcp-server. Затем включается СДХ, получает ip согласно настройкам в /etc/dhcp/dhcpd.conf (198.168.8.1) и затем, я хочу подключатся по nfs к папкам на этой СДХ. Например, сделал в /etc/systemd/system/ файл home.mount

[Unit]
Description = Mount NFS home

[Mount]
What=192.168.8.1:/NAS/RAID0_home
Where=/home
Type=nfs
Options=rw,async,noauto,soft

[Install]
WantedBy=multi-user.target

Если его запустить systemctl start home.mount, то все отлично монтируется. Однако, я хочу чтобы при перезагрузке также происходило автоматическое монтирование папки и тут начинаются проблемы. Т.к. похоже dhcp поднимается уже после попытки монтирования. Логи монтирования выглядят так:

systemd[1]: Mounting Mount NFS home...
systemd[1]: home.mount: Mounting timed out. Terminating.
systemd[1]: home.mount: Mount process exited, code=killed, status=15/TERM
systemd[1]: home.mount: Failed with result 'timeout'.
systemd[1]: Failed to mount Mount NFS home.

По логике требуется просто в [Unit] добавить правильные команды типа After=network.target. Но я не понимаю, какой именно объект добавлять в правой части. Я так понимаю, что isc-dhcp-server нормально не взаимодействует с systemd? Читал что можно через systemd-networkd поднимать dhcp, но для этого придется переделывать конфиг по типу dhcpd.conf?

 , , ,

dnkosiris
()

Переименование интерфейса в debian

Имеются несколько серверов, система (debian 10) на которые загружается по сети с созданного образа с управляющего узла. Проблема в том, что название интерфейсов на этих серверах немного отличается, например, enp24s0f0 или enp26s0f0. Из-за этого после разворачивания системы возникают проблемы, так как надо явно указывать название интерфейса в \etc\network\interfaces

auto enp24s0f0
iface enp24s0f0 inet dhcp

Если раньше(кажется до debian 9) можно было просто указать eth0, то теперь, как я понимаю, приходится для каждого сервера при другом интерфейса создавать новый образ, что не очень практично. Можно ли как то решить эту проблему и сделать единую запись в \etc\network\interfaces?

По идее, проблему можно было бы решить с помощью переименования интерфейса с помощью UDEV RULES согласно https://losst.ru/nastrojka-udev-rules-v-linux. Но там все равно надо явно знать название интерфейса. Наверно его как то можно получить с помощью bash-скрипта по названию папок в \sys\class\net, но я не знаю как. Что нибудь можете подсказать?

 , , ,

dnkosiris
()

Вычислительный нод не регистрируется в системе slurm

Добрый день!

На управляющем узле стоит Debian 8 и можно установить slurm только версии 14.03.9. На вычислительных нодах захотел обновить систему до Debian 9. И там поставился slurmd 16.05.9. В результате, с управляющего узла нод пингуется. И на управляющем узле сервис slurmctld и на ноде slurmd работают. Однако нод в sinfo всё равно имеет статус down.

scontrol show slurmd

на ноде выдаёт

Active Steps             = NONE
Actual CPUs              = 32
Actual Boards            = 1
Actual sockets           = 4
Actual cores             = 8
Actual threads per core  = 1
Actual real memory       = 257950 MB
Actual temp disk space   = 1024 MB
Boot time                = 2019-10-22T20:23:44
Hostname                 = cn5
Last slurmctld msg time  = NONE
Slurmd PID               = 967
Slurmd Debug             = 3
Slurmd Logfile           = /var/log/slurm-llnl/slurmd.log
Version                  = 16.05.9

Т.е. он не разу не зарегистрировался.

Лог по адресу /var/log/slurm-llnl/slurmd.log выдаёт

[2019-10-23T06:25:06.031] Considering each NUMA node as a socket
[2019-10-23T06:25:06.032] Node configuration differs from hardware: CPUs=32:32(hw) Boards=1:1(hw) SocketsPerBoard=2:4(hw) CoresPerSocket=16:8(hw) ThreadsPerCore=1:1(hw)
[2019-10-23T06:25:06.032] Message aggregation disabled
[2019-10-23T06:25:06.034] Resource spec: Reserved system memory limit not configured for this node
[2019-10-23T06:25:06.056] error: slurm_receive_msg: Zero Bytes were transmitted or received
[2019-10-23T06:25:06.066] error: Unable to register: Zero Bytes were transmitted or received
[2019-10-23T06:25:07.077] error: slurm_receive_msg: Zero Bytes were transmitted or received
[2019-10-23T06:25:07.087] error: Unable to register: Zero Bytes were transmitted or received
[2019-10-23T06:25:08.099] error: slurm_receive_msg: Zero Bytes were transmitted or received
[2019-10-23T06:25:08.109] error: Unable to register: Zero Bytes were transmitted or received

На всякий случай ещё прикреплю конфиг файл slurm

# slurm.conf file generated by configurator.html.
# Put this file on all nodes of your cluster.
# See the slurm.conf man page for more information.
#
ControlMachine=master
ControlAddr=192.168.8.8
#BackupController=
#BackupAddr=
# 
AuthType=auth/none
CacheGroups=0
#CheckpointType=checkpoint/none 
CryptoType=crypto/openssl
#DisableRootJobs=NO 
#EnforcePartLimits=NO 
#Epilog=
#EpilogSlurmctld= 
#FirstJobId=1 
#MaxJobId=999999 
#GresTypes= 
#GroupUpdateForce=0 
#GroupUpdateTime=600 
#JobCheckpointDir=/var/lib/slurm/checkpoint 
JobCredentialPrivateKey=/NAS_config/slurm/keys/key
JobCredentialPublicCertificate=/NAS_config/slurm/keys/certificate
#JobFileAppend=0 
#JobRequeue=1 
#JobSubmitPlugins=1 
#KillOnBadExit=0 
#LaunchType=launch/slurm 
#Licenses=foo*4,bar 
#MailProg=/usr/bin/mail 
#MaxJobCount=5000 
#MaxStepCount=40000 
#MaxTasksPerNode=128 
MpiDefault=none
#MpiParams=ports=#-# 
#PluginDir= 
#PlugStackConfig= 
#PrivateData=jobs 
ProctrackType=proctrack/pgid
#Prolog=
#PrologFlags= 
#PrologSlurmctld= 
#PropagatePrioProcess=0 
#PropagateResourceLimits= 
#PropagateResourceLimitsExcept= 
#RebootProgram= 
ReturnToService=2
#SallocDefaultCommand= 
SlurmctldPidFile=/var/run/slurm-llnl/slurmctld.pid
SlurmctldPort=6817
SlurmdPidFile=/var/run/slurm-llnl/slurmd.pid
SlurmdPort=6818
SlurmdSpoolDir=/var/lib/slurm-llnl/slurmd
SlurmUser=slurm
#SlurmdUser=root 
#SrunEpilog=
#SrunProlog=
StateSaveLocation=/var/lib/slurm-llnl/slurmctld
SwitchType=switch/none
#TaskEpilog=
TaskPlugin=task/none
#TaskPluginParam=
#TaskProlog=
#TopologyPlugin=topology/tree 
#TmpFS=/tmp 
#TrackWCKey=no 
#TreeWidth= 
#UnkillableStepProgram= 
#UsePAM=0 
# 
# 
# TIMERS 
#BatchStartTimeout=10 
#CompleteWait=0 
#EpilogMsgTime=2000 
#GetEnvTimeout=2 
#HealthCheckInterval=0 
#HealthCheckProgram= 
InactiveLimit=0
KillWait=30
#MessageTimeout=10 
#ResvOverRun=0 
MinJobAge=300
#OverTimeLimit=0 
SlurmctldTimeout=120
SlurmdTimeout=300
#UnkillableStepTimeout=60 
#VSizeFactor=0 
Waittime=0
# 
# 
# SCHEDULING 
#DefMemPerCPU=0 
FastSchedule=1
#MaxMemPerCPU=0 
#SchedulerRootFilter=1 
#SchedulerTimeSlice=30 
SchedulerType=sched/backfill
SchedulerPort=7321
SelectType=select/linear
#SelectTypeParameters=
# 
# 
# JOB PRIORITY 
#PriorityFlags= 
#PriorityType=priority/basic 
#PriorityDecayHalfLife= 
#PriorityCalcPeriod= 
#PriorityFavorSmall= 
#PriorityMaxAge= 
#PriorityUsageResetPeriod= 
#PriorityWeightAge= 
#PriorityWeightFairshare= 
#PriorityWeightJobSize= 
#PriorityWeightPartition= 
#PriorityWeightQOS= 
# 
# 
# LOGGING AND ACCOUNTING 
#AccountingStorageEnforce=0 
#AccountingStorageHost=
#AccountingStorageLoc=
#AccountingStoragePass=
#AccountingStoragePort=
AccountingStorageType=accounting_storage/none
#AccountingStorageUser=
AccountingStoreJobComment=YES
ClusterName=cluster
#DebugFlags= 
#JobCompHost=
#JobCompLoc=
#JobCompPass=
#JobCompPort=
JobCompType=jobcomp/none
#JobCompUser=
#JobContainerPlugin=job_container/none 
JobAcctGatherFrequency=30
JobAcctGatherType=jobacct_gather/none
SlurmctldDebug=3
SlurmctldLogFile=/var/log/slurm-llnl/slurmctld.log
SlurmdDebug=3
SlurmdLogFile=/var/log/slurm-llnl/slurmd.log
#SlurmSchedLogFile= 
#SlurmSchedLogLevel= 
# 
# 
# POWER SAVE SUPPORT FOR IDLE NODES (optional) 
#SuspendProgram= 
#ResumeProgram= 
#SuspendTimeout= 
#ResumeTimeout= 
#ResumeRate= 
#SuspendExcNodes= 
#SuspendExcParts= 
#SuspendRate= 
#SuspendTime= 
# 
# 
# COMPUTE NODES 

NodeName=cn[1-13] NodeAddr=192.168.3.[1-13] CPUs=32 Sockets=2 CoresPerSocket=16 State=UNKNOWN
PartitionName=main Nodes=cn[1-13] Default=NO MaxTime=INFINITE State=UP

Вопрос, ошибка связана с разной версией slurm на управляющем узле и нодах и придётся обновлять систему и на управляющем узле, что бы была возможность обновить slurm или всё таки ошибка с какими то настройками и есть возможность запускать slurm на разный версиях ОС.

 , ,

dnkosiris
()

Автозапуск slurmd

Вычислительный нод получает от управляющего узла по tftp образ настроенной системы(настроенной через chroot) и разворачивает в своей оперативной памяти. В системе подмонтируются некоторые общие папки. А также поднимаются некоторые сервисы. Один из них slurmd. Причём конфиг файл /etc/slurm-llnl/slurm.conf лежит как раз в подмортированной общей папке, а в папке образа системы нода символьная ссылка на этот файл. Раньше система, передаваемая на ноды была Debian 8. Теперь решил обновить по крайней мере до Debian 9. Раньше для надёжности, чтобы сервис slurmd поднялся, кроме

systemctl enable slurmd.service

в rc.local прописывал

systemctl start slurmd.service
systemctl start slurmd.service

Сейчас так как rc.local в Debian 9 по умолчанию выключен и можно его поднимать только отдельно, то решил посмотреть, что будет если ограничится только

systemctl enable slurmd.service

В результате slurmd при запуске системы не поднимается, а systemctl status slurmd выдаёт ошибку

slurmd.service - Slurm node daemon
   Loaded: loaded (/lib/systemd/system/slurmd.service; enabled; vendor preset: enabled)
   Active: inactive (dead)
Condition: start condition failed at Tue 2019-10-22 18:18:51 MSK; 40s ago
           └─ ConditionPathExists=/etc/slurm-llnl/slurm.conf was not met
     Docs: man:slurmd(8)

Т.е. как я понимаю проблема в том, что конфиг файл не успевает подмонтироваться. Причём, если после загрузки системы зайти на нод и руками запустить systemctl start slurmd.service , то slurmd запускается. Не знаю как решить эту проблему, но как временное решение решил запихнуть конфиг файл не ссылкой, а целиком в образ. В результате иногда сервис поднимается, но чаще всего выдаёт ошибку

● slurmd.service - Slurm node daemon
   Loaded: loaded (/lib/systemd/system/slurmd.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Tue 2019-10-22 18:26:23 MSK; 56s ago
     Docs: man:slurmd(8)
  Process: 610 ExecStart=/usr/sbin/slurmd $SLURMD_OPTIONS (code=exited, status=1/FAILURE)

Oct 22 18:26:23 cn5 systemd[1]: Starting Slurm node daemon...
Oct 22 18:26:23 cn5 systemd[1]: slurmd.service: Control process exited, code=exited status=1
Oct 22 18:26:23 cn5 systemd[1]: Failed to start Slurm node daemon.
Oct 22 18:26:23 cn5 systemd[1]: slurmd.service: Unit entered failed state.
Oct 22 18:26:23 cn5 systemd[1]: slurmd.service: Failed with result 'exit-code'.

Причём если запускать его руками после старта системы, то всё работает.

Как можно поправить это?

 , ,

dnkosiris
()

удалил /boot

Всем привет. Не очень хорошо разбираюсь в линуксе. По глупости удалил папку /boot, initd.img и vmlinuz. Думал что сижу под chroot. Есть флешка с которой устанавливал эту систему. Есть ли возможность как то восстановить работоспособность системы? Сервер пока не перегружал.

 

dnkosiris
()

RSS подписка на новые темы