OCFS2의 경쟁 제품은 GFS2
제목이 위와 같기 때문에 오해를 일으킬 수 있어서 소제목으로 명확히 하였습니다.
제 고민은 같은 기능을 하는 제품 간의 비교가 아닙니다.
정확히 따지면 OCFS2를 활용한 인프라 구조와 GlusterFS를 사용했을 때의 인프라 구조에 대한 고민
입니다.
간략히 설명드리면 OCFS2는 하나의 디스크를 각각의 머신에 연결하되, 이 때 발생하는 문제를 최소화하기 위한 파일 시스템이고, GlusterFS는 디스크가 공유되지 않은 상태에서 파일을 공유하기 위한 도구입니다.
OCFS2: Shared File System, DLM
Wikipedia의 List of Filesystem에 따르면 Shared-disk File system
에 해당합니다.
이미 디스크가 각 머신에 연결이 되어있을 때 사용하는 파일시스템이죠.
File Locking
컴퓨터 한대에 디스크가 하나가 연결되어있습니다.
하나의 파일이 수정되는 동안에는 당연히 다른 프로그램에서 같이 읽거나 수정할 수 없습니다.
예를 들면 다음과 같이 되겠죠.
하나의 프로그램이 디스크의 A 파일을 읽고 있습니다.
다른 프로그램에서 디스크의 A 파일을 읽을 수 있습니다.
하나의 프로그램이 디스크의 A 파일에 쓰고 있습니다.
다른 프로그램에서 디스크의 A 파일을 읽을 수 없습니다.
이렇게 동시에 쓰지 못하게 하는 것을 file locking
이라고 합니다.
DLM: Shared File System을 위한 File Locking
그러면 하나의 디스크가 여러 컴퓨터에 연결되어있습니다.
컴퓨터의 한 프로그램이 파일을 쓰고 있습니다.
이 때 다른 컴퓨터에서는 읽거나 쓸수 없어야 합니다.
네트워크를 통해서 현재 어떤 파일을 읽으려고 한다, 어떤 파일을 쓰고 있다는 등의 정보를 전달해야 하겠죠.
이것을 위한 것이 Shared-disk File system
입니다.
Shared-disk File system
의 가장 큰 특징은 DLM(Distributed Locking Manager)를 통해서 locking 정보를 관리합니다.
GFS2(Global FS)나 OCFS2 모두 DLM이 포함됩니다.
GlusterFS
Dtributed file systems
디스크가 독립 된 서로 다른 컴퓨터가, 같은 데이터를 공유하기 위한 파일 시스템으로,
각 머신의 특정 폴더를 다른 기기에 공유하고 동기화 해주는 기술입니다.
Shared-disk File system과 같이 동시에 쓰면 안되기 때문에 DLM이 포함 되며, Quorum이 만족되어야 합니다.
비교
OCFS2 장점
성능
네트워크를 사용하는 GlusterFS에 비해 OCFS2가 성능이 좋을것입니다.
GlusterFS는 OCFS2와 달리 파일 내용을 전달해야 합니다.
Bandwidth는 몰라도, IOPS는 직접 디스크에 연결되는 OCFS2가 좋습니다.
안정성
OCFS2는 컴퓨터 하나가 꺼져도, 심지어 3대가 동시에 꺼져도 문제가 없습니다.
하나의 디스크를 사용하니까요.
데이터에는 훨씬 안정적이죠.
그래서 데이터의 가용성을 위한 Quorum이 필요하지 않습니다.
GlusterFS 장점
GlusterFS는 FIlesystem이 아니다
이름에 GlusterFS라고 되어있지만, 우리가 흔히 생각하는 FileSystem은 아닙니다.
OCFS2는 mkfs.ocfs2로 포맷을 하지만, GlusterFS는 특정 디렉토리를 동기화(?) 해주는 시스템이기 때문입니다.
Filesystem으로 btrfs나 zfs를 사용하여 btrfs와 zfs의 장점을 그대로 가져갈 수 있습니다.
예를 들면 압축, 스냅샷 등을 그대로 사용할 수 있죠.
제가 GlusterFS로 결정한 가장 큰 이유입니다.
치명적인 실수에서 snapshot
을 이용해 복구한적이 너무 많습니다.
답글 남기기