2019년 4월 18일 목요일

CentOS 7로 업그레이드하기

연말까지는 되도록 업그레이드를 하지 않고 CentOS 6.10로 버티려고 했었으나 땜질 처방만으로 유지하는 것에는 한계가 있다고 생각하여 단호하게 업그레이드를 하기로 결심하고 즉시 실행에 옮겼다. 업무용(대부분 생명정보 분석용) 프로그램의 설치가 쉬운 Ubuntu 16.04로 갈아타는 문제도 한참을 고민하였지만 공용 서버로서 안정적이고 보수적인 운영을 원한다면 CentOS 7이 나을 것으로 최종 결정을 하였다.

언제나 그렇듯이 한 번의 시도에 흡족할 수준으로 설치가 되지는 않았다. 리눅스를 설치할 때마다 늘 혼동스러운 것은 하드디스크의 파티션 과정이다. 완전 자동으로 파티션을 하도록 만든 다음 설치를 마치고 났더니 /은 겨우 50 GB에 불과하고 나머지를 전부 /home으로 만든 것이 아닌가. 추가로 설치할 응용 프로그램이 상당히 많은데 이를 전부 심볼릭 링크로 만들 수는 없는 노릇이다. 다시 설치를 시도하였다. 요즘도 swap 파티션이 꼭 필요한 것인가하는 생각이 들기도 하고... 자동으로 생성한 파티션에서 swap 크기가 이 얼마였는지 확인을 해 보지 않고 재설치를 하고 말았다. df 명령으로는 swap 파티션이 보이지 않으므로 swapon -s 명령을 써야 한다(오늘 알게 된 사실).

'Swap 파티션의 크기는 대략 메모리의 두 배'라는 옛날의 기준을 수백 기가 바이트의 메모리가 장착된 요즘의 컴퓨터에도 적용해야 할까? 그렇지는 않으리라. 내 컴퓨터의 메모리는 256 GB이다.

Red Hat Enterprise Linux 권장 swap 크기는 어떻게 되나요?

16 GB면 충분한 것을, 무려 100 GB나 잡아 놓았다!!

CentOS 7로 업그레이드를 하니 예전에 즐겨 사용하던 palimpsest 디스크 유틸리티는 보이지 않고 거의 비슷한 외관의 gnome-disk-utility가 있다. 100 GB나 되는 공간이 swap으로 떡하니 자리를 차지하고 있는 것을 보니 안타깝다. 그놈 디스크 유틸리티(혹은 gparted)에서 구동 중인 하드디스크의 파티션을 조정하는 것이 가능한 것 같다(참고). 다만 바뀐 UUID를 수동으로 다시 맞추어 주어야 한다.

OS를 새로 설치하니 UID와 GID가 바뀌어서 NFS로 물린 시놀로지 NAS의 자료를 고치기가 어렵게 되었다. 계정명은 동일하지만 ID는 501에서 1001로 바뀌었으니 디렉토리와 파일이 주인을 잃은 상태가 되었다. 같은 시스템 안에 있던 RAID 공간에 있던 것들은 chown 명령으로 복구를 하였지만 NFS로 물린 것은 이렇게 고쳐지지 않는다. usermod 혹은 groupmod 명령어를 쓰는 것은 별로 권장할 일이 아닌 것 같다. 왜냐하면 홈 디렉토리 이외의 것에 대해서는 자동으로 고쳐지지 않기 때문이다. 또한 여기에 새로 만드는 파일 및 디렉토리의 권한은 777이 된 상태이다. NAS쪽에서 설정을 바꾸어야 하는 것일까? 보안과 squash 필드의 의미를 정확히 아는 것이 필요하다.

로컬 네트워크(NFS) 내에서 Synology NAS의 파일에 액세스하는 방법

아직도 해결할 일이 많이 남았다.

2019년 4월 21일 업데이트

새로 OS를 설치하는 것이니만큼 Perl 모듈도 깨끗하게 깔고자 하였으나 원하는대로 잘 되지는 않았다. 관리자 권한으로 perl -MCAPN -e shell 명령을 사용하여 BioPerl 설치 진행을 하였더니 루트의 홈 디렉토리에 펄 base directory가 지정되는 별로 바람직하지 않은 결과가 되었다. 여기에다가 필요에 의해 rpm 및 conda environment로 설치한 모듈까지 뒤죽박죽이 되고 말았다. prokka나 roary처럼 Perl 모듈에 대한 의존도가 높은 프로그램을 설치할 때 특히 주의를 해야 하는데 그렇게 하지를 못했다.

만약 내가 사용하려는 프로그램이 XML::Simple을 필요로 한다고 치자. perl -MCPAN -e shell 명령으로 설치를 했다 하더라도 yum install perl-XML-Simple 명령을 내리면 이미 시스템에 존재하는지를 확인하지 않고 중복하여 설치하는 것 같다. bioconda 패키지의 설치 역시 그런 것 같다.

앞으로 conda 환경이 아닌 시스템에서 직접 Perl 모듈을 설치할 때에는 CPANMinus(또는 CPANM) 유틸리티를 사용하는 것이 좋을 것이다. 그러려면 CPANM 자체를 설치하는 방법도 알아야 한다. App::cpanminus를 직접 설치하거나, 아니면 perl-App-cpanm rpm 패키지를 yum으로 설치하는 방법이 있다.

NAS의 최상위 디렉토리에서 파일이나 디렉토리를 만들면 777 권한이 되지만, 새로 만든 디렉토리의 권한을 적당히 바꾼 뒤 그 하위에 새로운 파일 또는 디렉토리를 만들면 umask에서 원래 설정한대로 되는 것을 확인하였다. Synology NAS쪽에서는 소유자가 잘못된 파일 등을 웹으로 접속하여 지우는 것 정도로만 마무리를 하였다.

댓글 없음: