리눅스 서버 클러스터 설정하기: 1. 개요
https://novelism.tistory.com/424
리눅스 서버 클러스터 설정하기: 2. 파일 시스템 공유하기
https://novelism.tistory.com/425
작업을 위해서 서버를 몇 대 임대해서 사용하고 있습니다.
서버 세팅은 대학원생 때부터 했지만 시간이 지나면 계속 바뀌는 것이 있어서 매번 새로 공부하게 됩니다.
그래도 점점 쉬워지는 것 같아서 다행입니다.
제가 할 줄 아는 것은 별로 대단한 것은 아니고 상식적인(?) 수준입니다.
제 상식과 세상의 상식이 다를지도 모르지만...
오랜만에 서버 세팅을 하게 돼서 나중에 제가 보기 위해 글을 작성해 보기로 결심하였습니다.
일단 리눅스 서버 클러스터를 구축하는 기본 개념에 대해 설명하겠습니다.
보통 계산용 서버는 컴퓨터가 여러 대, 사용자가 여러 명인 상황을 가정합니다.
연구실이나 회사에서 흔히 접하는 상황입니다.
이때 모든 컴퓨터를 각각의 사용자가 개별적으로 사용한다면 어떤 일이 생길까요?
1인당 3PC를 배급하고 알아서 사용하라고 한다면?
모든 사람이 동일한 시기에 동일한 만큼 컴퓨터 자원을 사용하진 않을 겁니다. 누구는 다른 업무 중이고, 누구는 테스트 코드를 작성 중이고, 누구는 테스트가 끝나서 이제 계산을 본격적으로 해야 하는 상황이 옵니다.
그러면 어떤 사람은 컴퓨터 자원이 일시적으로 많이 필요한데, 누군가는 당장 컴퓨터 자원이 필요 없는 상황이 발생합니다. 그러면 자원이 부족한 사람이 남는 컴퓨터를 사용하겠다고 빌리겠죠. 사실 이문제로 갈등이 생기는 일도 흔합니다만...
어쨌건 컴퓨터를 빌렸다고 칩시다.
그러면 당연히 세팅부터 시작해야 하고, 자신의 데이터를 복사해와야 합니다. 내 작업환경과 다르기 때문에 세팅하는데도 시간이 많이 걸립니다. 아무튼 무척이나 피곤한 일입니다.
그러면 애초에 모든 컴퓨터들을 동일한 환경으로 세팅하고, 디스크, 스토리지의 데이터도 여러 컴퓨터에서 공유해서 사용한다면 어떨까요? (NFS)
그리고 하는 김에 작업 관리자 프로그램이 작업을 효율적으로 서버에 분배해 준다면 어떨까요? (잡 스케쥴러)
그리고 하나의 계산을 여러 컴퓨터에 분산해서 실행할 수 있다면 어떨까요? (MPI)
서버 클러스터를 세팅할 때 이런 기능들을 설정해 두는 것입니다. 다만 이런 기능을 전부 세팅하기도 하고, 일부만 하기도 합니다.
클러스터 구축에서 가장 중요한 것은 파일시스템(디스크) 공유입니다. 왜냐하면 결국 모든 것은 파일 시스템에 저장되기 때문입니다.
유저의 정보, 환경 설정, 설치된 프로그램, 데이터 등.. 이 전부 디스크 안에 저장되어 있기에 이것이 공유된다면 거의 대부분이 공유된다고 할 수 있습니다.
NFS (network file system)이라는 것으로 서버 간 파일 시스템을 공유할 수 있습니다.
사실 한대의 서버에 (스토리지 서버) 디스크를 몰아넣고, 나머지 서버들은 그것을 공유받는 방법도 있습니다.
그럼 다음 글에서 NFS 설정에 대해 설명하겠습니다.
'Computer' 카테고리의 다른 글
리눅스 서버 클러스터 설정하기: 2. 파일 시스템 공유하기 (0) | 2025.01.05 |
---|---|
AMD B650-PLUS 하이닉스 DDR5 5600MHz 32GB*4 풀 뱅크 실패 (3) | 2023.09.29 |
adata 840 legend SSD 프리징, 렉 해결 윈도우 10, 11 (0) | 2023.04.22 |
linux 그래픽 드라이버 문제, ubuntu, nvidia_smi 에러, UEFI (0) | 2023.03.05 |
병렬 컴퓨팅, 멀티 프로세싱, python GIL (0) | 2023.03.05 |