OCFS2 노드 추가

OCFS2 노드 추가

나는 별도의 컴퓨터에서 nginx와 php fpm을 실행하는 vms를 가지고 있습니다. 지금은 클러스터가 그다지 크지 않기 때문에 디렉토리를 수동으로 동기화하는 매우 어리석은 방법을 사용합니다. 그러나 공유 저장 장치로 활용하고 싶은 또 다른 서버가 있습니다.

지금까지 나는 ocfs2 파일 유형을 사용하여 iscsi를 통해 스토리지를 제공할 수 있다는 것을 이해했습니다. 저를 괴롭히는 점은 초기 설정에서 각 노드를 미리 지정해야 하고 노드를 추가하려면 변경 사항을 적용하기 위해 o2cb를 종료해야 한다는 것입니다.

목표는 iscsi를 통해 nginx 및 php-fpm 노드에 공유 스토리지를 제공하는 것입니다(그래서 복제를 수행할 필요가 없음). 그러나 클러스터의 로드에 따라 노드 수가 늘어날 수 있습니다.

아이디어 #1: 어떻게든 호스트를 통해 내 VM에 스토리지를 제공할 수 있으므로 호스트만 ocfs2를 직접 처리하게 될까요? 그렇게 하면 노드가 알려집니다.

답변1

OCFS2는 복제본에 사용하는 각 블록 장치가 동일하다고 가정하는 클러스터형 파일 시스템입니다. 이는 데이터 잠금 및 순서 지정이 참여 노드 간에 극도로 응집력이 있는 nginx와는 매우 다른 사용 사례를 위해 설계되었습니다.

이렇게 하면 상당한 오버헤드가 발생하지만 동일한 데이터 세트를 수정하는 여러 작업자를 실행하는 데 매우 유용할 수 있습니다. 이는 스토리지에서 피하고 싶은 패턴이지만 때로는 유용할 때도 있습니다. 지금은 그때가 아니다.

이 구현은 iSCSI가 지원하는 클러스터형 FS가 아닌 중앙 NFS 또는 SMB 공유의 이점을 누릴 수 있습니다. 이렇게 하면 각 Nginx 작업자가 동일한 디렉터리에 액세스할 수 있습니다. 동시에 동일한 파일에 쓰기를 시도하지 않는 것이 가장 좋지만 그렇게 해야 하는 경우 NFS >v4.1 또는 SMB >v3.x를 사용하고 있는지 확인할 수 있습니다. 둘 다 이전 버전보다 잠금을 더 잘 처리합니다.

답변2

세 번째 서버를 NFS 서버로 설정하면 해당 사용 사례에서는 OCFS2를 사용하는 것보다 더 합리적입니다. OCFS2는 빠른 SAN 스토리지나 DRBD와 같이 실시간 복제되는 스토리지보다 더 좋습니다.

관련 정보