Benim özel durumumda, tamamen başladıktan remote-fs
sonra üniteyi başlatmak istiyorum glusterfs
.
Sistem dosyalarım:
glusterfs
hedef:
node04:/usr/lib/systemd/system # cat glusterfsd.service
[Unit]
Description=GlusterFS brick processes (stopping only)
After=network.target glusterd.service
[Service]
Type=oneshot
ExecStart=/bin/true
RemainAfterExit=yes
ExecStop=/bin/sh -c "/bin/killall --wait glusterfsd || /bin/true"
ExecReload=/bin/sh -c "/bin/killall -HUP glusterfsd || /bin/true"
[Install]
WantedBy=multi-user.target
remote-fs
hedef:
node04:/usr/lib/systemd/system # cat remote-fs.target
[Unit]
Description=Remote File Systems
Documentation=man:systemd.special(7)
Requires=glusterfsd.service
After=glusterfsd.service remote-fs-pre.target
DefaultDependencies=no
Conflicts=shutdown.target
[Install]
WantedBy=multi-user.target
Tamam, tüm Gluster artalanları başarılı bir şekilde başlıyor ve Gluster dosya sistemini NFS aracılığıyla bağlamak istiyorum, ancak Gluster'ın NFS paylaşımı hemen glusterfs.service
başlatıldıktan hemen sonra değil, birkaç saniye sonra hazırlanıyor, bu yüzden genellikle remote-fs
ilgili Requires
ve After
yönergeler arasında bile bağlanamıyor .
Günlüğü görelim:
Apr 14 16:16:22 node04 systemd[1]: Started GlusterFS, a clustered file-system server.
Apr 14 16:16:22 node04 systemd[1]: Starting GlusterFS brick processes (stopping only)...
Apr 14 16:16:22 node04 systemd[1]: Starting Network is Online.
Apr 14 16:16:22 node04 systemd[1]: Reached target Network is Online.
Apr 14 16:16:22 node04 systemd[1]: Mounting /stor...
Burada her şey yolunda, uzak dosya sistemi (/ stor) glusterfs başladıktan sonra, birim dosyalara göre olması gerektiği gibi monte edilmiş gibi görünüyor ... Ama sonraki satırlar:
//...skipped.....
Apr 14 16:16:22 node04 systemd[1]: Started GlusterFS brick processes (stopping only).
Ne? GlusterFS sadece bu an için hazırlandı! Ve sonra görüyoruz:
//...skipped.....
Apr 14 16:16:23 node04 mount[2960]: mount.nfs: mounting node04:/stor failed, reason given by server: No such file or directory
Apr 14 16:16:23 node04 systemd[1]: stor.mount mount process exited, code=exited status=32
Apr 14 16:16:23 node04 systemd[1]: Failed to mount /stor.
Apr 14 16:16:23 node04 systemd[1]: Dependency failed for Remote File Systems.
Apr 14 16:16:23 node04 systemd[1]: Unit stor.mount entered failed state.
Sistem depolama birimini takmaya çalıştığında NFS sunucusu hazır olmadığı için bağlama başarısız oldu.
Systemd önyükleme işleminin deterministik olmayan doğası nedeniyle, bazen bu dosya sistemini önyükleme üzerine monte etmek başarılı olur.
Açılışta bağlanma başarısız olursa, sunucuya giriş yapabilir ve / stor dizinini el ile bağlayabilirim, böylece Gluster'ın NFS hizmeti iyi çalışıyor gibi görünüyor.
Peki remote-fs
sonra nasıl başlanır glusterfsd
, yani Started GlusterFS brick processes
günlükte satır görüntülendikten sonra ?
remote-fs
son hedeflerden biri gibi görünüyor, bu yüzden aslında gerekli olmayan başka bir "geçici çözüm" hedefinden sonra başlayamıyorum remote-fs
.
glusterfsd.service
Birim dosyanızla gerçekten kafam karıştı . Aslında herhangi bir hizmet başlatmıyor gibi görünüyor ve aslında herhangi bir işlemi öldürüyorglusterfsd
. Gluster ile ilgili başka bir birim dosyası var mı?
stor.mount
Birimi de gösterebilir misiniz ?
ExecStartPre=<command>
Birim bölümüne bir özellik ekleyebilir misinizglusterfsd.service
? Bu,glusterfsd.service
başarıyı göstermesini ve etkinleştirilmesini engelleyebilirremotefs.target
.