전체 시스템에 대해 심볼릭 링크를 수행하는 것이 안전한가요?

전체 시스템에 대해 심볼릭 링크를 수행하는 것이 안전한가요?

문제가 된 저장소 용량이 제한된 가상 머신이 있습니다. 내 홈 디렉터리가 서버의 NFS 저장소에 연결되어 있고 문제 없이 작동하고 있습니다. 하지만 이제 전체 머신을 NFS에 연결해야 하는데 스토리지가 계속 부족합니다!

전체 시스템(즉, 전체:/) NFS로?

이를 위해 다음 명령을 사용하고 싶습니다.

/storage/nfs기본적으로 내가 마운트한 NFS입니다.

$ mkdir /storage/nfs/myvmroot
$ sudo cp -rp /* /storage/nfs/myvmroot
$ sudo mv /* /old-root
$ sudo ln -s /storage/nfs/myvmroot /

답변1

/심볼릭 링크를 만들 수 없습니다 . 그것은 불가능합니다. /디렉토리여야 합니다. 심볼릭 링크 라면 /어떤 경로를 가리킬 것입니다. 그리고 해당 경로를 확인하기 위해 시스템은 /심볼릭 링크이므로 해결이 필요합니다. 자신을 가리키는 심볼릭 링크는 다음과 같은 경우 항상 오류를 발생시킵니다. 역참조되었지만 어떤 경우에도 /이미 기존 디렉터리이므로 심볼릭 링크를 만들 수 없습니다 .

당신이 할 수 있고 원하는 효과를 얻을 수 있는 것은일반적으로 수행되는 로컬 파일 시스템을 마운트하는 대신 NFS 파일 시스템을 루트 파일 시스템으로 사용합니다. 이것은 우분투에서 가능하고 지원됩니다.Ubuntu 커뮤니티 위키에 튜토리얼이 있습니다.(완전한 디스크 없는 설치를 다루고 있으며 로컬에 보관하는 경우 TFTP에 대한 부분을 건너뛸 수 있습니다 /boot.) 기존 시스템을 이동하는 것은 초기 설치를 수행하는 것과 약간 다르므로 튜토리얼을 문자 그대로 따를 것이라고 기대하지 마십시오.

당신은initramfs필요한 드라이버가 포함되어 있습니다. initramfs는 다음 명령으로 생성됩니다.update-initramfs현재 시스템 구성과 아래의 구성 파일을 기반으로 합니다 /etc/initramfs-tools. NFS 설정을 명시적으로 추가해야 합니다./etc/initramfs-tools/initramfs.conf, 최소한 한 줄을 추가하십시오 BOOT=nfs(다른 매개 변수는 부팅시 지정할 수 있지만 BOOT=nfsNFS 드라이버를 포함하기 위해 필요하며 DEVICE=…이더넷 드라이버를 포함하기 위해 필요할 수도 있습니다). 을 수정한 후 를 /etc/initramfs-tools/initramfs.conf실행합니다 update-initramfs.

아직 그렇지 않은 경우 와 /boot별도로 로컬 파티션으로 유지하는 것이 좋습니다 ./

cp -rp /* /storage/nfs/myvmroot파일을 복사하는 데 사용하지 마십시오, 그건 작동하지 않습니다. 마운트된 파일 시스템을 복사본에서 제외해야 합니다. 옵션 을 전달하십시오 -x. 또한 -a대신 사용하면 유지되지 않는 -rp속성이 있습니다 .-rp

cp -ax /* /storage/nfs/myvmroot

또는 복사가 중단되는 경우

rsync -axAX / /storage/nfs/myvmroot

아마도 더 쉬운 또 다른 옵션은 루트 파일 시스템을 로컬로 유지하고 그 일부만 이동하는 것입니다. 일반적으로 빠른 서버와 빠른 네트워크를 사용하더라도 NFS보다 로컬 파일 시스템에서 훨씬 더 나은 성능과 안정성을 얻을 수 있습니다.

아무데나 잘라낼 수는 없습니다. 원격으로 넣는 것은 부팅 프로세스 초기에 너무 일찍 필요하지 않아야 합니다. 컷팅은 /usr요즘 우분투에서 공식적으로 지원하지 않지만, 우분투의 상위 배포판인 데비안에서 지원하는 것이므로 작동할 가능성이 있다고 생각합니다 . 일할 가능성이 좋은 또 다른 곳은 입니다 /usr/share. 나는 권장하지 않습니다 /var. 로그가 보관되는 곳이므로 문제가 발생하면 번거로울 수 있습니다. (NFS 클라이언트가 어떤 것에 만족하지 않고 로그를 쓰려고 시도 /var/log하지만 /var응답하지 않는 경우 행운을 빌어서 실패를 진단해 보세요.)

답변2

아니요. 그러면 가상 머신을 부팅할 수 없게 됩니다. NFS 시스템은 부팅 프로세스의 특정 지점에서 로드됩니다. 이 시점 이전에는 NFS의 어떤 파일에도 액세스할 수 없습니다. 이는 머신이 부팅하는 데 필요한 파일에 액세스할 수 없음을 의미합니다. 여기에는 커널 자체, 기본 셸 /bin/sh/binNFS 공유를 마운트하는 데 필요한 명령이 포함된 모든 것이 포함되지만 이에 국한되지는 않습니다.

아니요. 이는 좋은 생각이 아닙니다. 더 중요한 것은 그럴 필요가 없다는 것입니다. 에 있는 대부분의 디렉토리 /는 그다지 크지 않습니다. 공간을 차지하고 있는 것을 식별하여 거기에 놓으십시오. 큰 문제 없이 다음 중 하나를 이동할 수 있어야 합니다.

  • /var/cache
  • /usr/local
  • /usr그 자체도 일반적으로 이동할 수 있지만 에 필수적인 것이 없는지 확인하십시오 /usr/local/bin. 아마도 그렇지 않을 것입니다. 하지만 확인해보세요.

어쨌든 그들은 아마도 공간을 차지하는 것들일 것입니다.

관련 정보