저는 Ubuntu 16.04 기반 VM(KVM/libvirt 실행)을 관리하고 있습니다. 이 서버는 우리 부서 내에서 사용되는 일부 가상 머신을 호스팅합니다.
모든 가상 머신은 당사의 Samba 서버를 사용하여 다양한 데이터를 저장합니다.
어젯밤의 가동 중단 중에 머신이 필요한 Samba 서버보다 훨씬 빠르게 부팅되어 가상 머신에서 수많은 서비스 오류가 발생하고 있다는 사실을 발견했습니다.
vm별로 패치하는 대신 재부팅 후 모든 vms를 시작하기 전에 내 vm 호스트가 CIFS 서버를 기다리도록 지시하고 싶습니다(기본적으로 libvirt -guests.service가 mnt-SHARENAME에 종속되도록 만들고 싶습니다. 마운트).
/lib/systemd/system/libvirt-guests.service에 종속성을 추가할 수 있다는 것을 알고 있지만 이것이 시스템에서 승인된 방법인지는 확실하지 않습니다. 종속성을 표현하는 다른 방법이 있나요?
답변1
이들 사이에 있는 "한 번 실행" 더미 서비스를 만들 수 있습니다.
xinetd
제 경우에는 xinetd와 xinetd에 문제가 있었습니다. NFS
(NFS 파일 시스템이 마운트되기 전에 Xinetd가 시작되어 일부 서비스가 시작되지 않습니다.) 파일로 정리했어요/lib/systemd/system/fix-xinetd-nfs-dependency.service
[Unit]
Description=Make xinetd wait for NFS otherwise it can not start services
After=remote-fs.target
Before=xinetd.service
[Service]
Type=oneshot
ExecStart=/bin/true
[Install]
WantedBy=multi-user.target
서비스를 생성하고 나면( Before
및 After
라인에 요구 사항을 반영하도록 함) 다음을 수행할 수 있습니다 systemctl enable
. 운 좋게도 이것이 실행됩니다.앞으로VM이 시작되었고 Samba 파일 시스템을 사용할 수 있습니다!