동일한 Singularity 컨테이너를 실행하려는 여러 머신이 있습니다. 우리는 이미 각 머신에 NAS가 설치되어 있기 때문에 배포를 생각할 필요 없이 NAS를 저장하기에 좋은 장소라고 생각했습니다.
처음에는 테스트를 위해 읽기 전용 컨테이너를 넣었는데 성공했습니다. 그런 다음 컨테이너 내부에 추가 시스템 패키지를 설치해야 합니다. 따라서 우리는 NAS에 직접 새로운 샌드박스 컨테이너를 구축합니다(NAS에 대한 루트 액세스 권한이 있습니다). 그러나 샌드박스에 패키지를 설치할 수 없으며(Singularity 셸은 -w
쓰기 플래그 및 루트 권한으로 시작됨) 다음 오류가 발생합니다. 예를 들어 yum update
샌드박스 내부에서 시작하면 다음과 같습니다.
error: cannot get shared lock on /var/lib/rpm/Packages
error: cannot open Packages index using db5 - Operation not permitted (1)
error: cannot open Packages database in /var/lib/rpm
Error: Error: rpmdb open failed
머신 중 하나에 로컬로 샌드박스 컨테이너를 빌드하고 액세스하면 패키지 관리자를 통해 소프트웨어를 설치할 수 있습니다.
이를 설정하기 위해 다음 명령을 실행합니다. 첫 번째는 이미지 라이브러리에서 샌드박스를 빌드합니다. 이 경우 AlmaLinux 8(CentOS 7도 시도했지만 동일한 문제가 있었습니다). 그런 다음 패키지를 설치하기 위해 쉘 모드에서 샌드박스에 들어갑니다.
singularity build --sandbox al8.6-sandbox library://library/default/almalinux:8
singularity shell -w -B /mnt:/mnt al8.6-sandbox
NAS 오류의 원인은 무엇일까요?