Object Storage를 Repository로 사용하여 OCI에서 NFS 클러스터 서버 구현
개시 시점에 자주 액세스하지만 그 이후로는 자주 액세스하지 않는 무제한의 중요 비정형 데이터를 사용하는 경우 최상의 옵션은 Oracle Cloud Infrastructure Object Storage입니다.
그러나 일부 애플리케이션은 기본적으로 오브젝트 스토리지를 사용할 수 없으므로 타사 솔루션을 사용해야 합니다. 이 아키텍처의 경우 다음을 사용합니다.
- 오브젝트 스토리지 읽기 및 쓰기에 대한 Rclone입니다.
- Corosync 및 Pacemaker는 클러스터(활성-대기)에 구축하며 중요한 애플리케이션(예: Rclone, 보조 IP, NFS 서비스, 마운트 지점 등)에 필요한 고가용성을 보장합니다.
- 클러스터에서 공유되는 NFS(네트워크 파일 시스템) 및 클러스터 노드 간 자동 페일오버용 보조 IP입니다.
이 참조 아키텍처는 고가용성과 유연성이 결합된 고객 고유의 구성을 설명합니다.
구조
다음 다이어그램은 이 참조 아키텍처를 보여줍니다.
이 시나리오에서는 스위치오버 프로세스를 빠르게 수행하기 위해 Rclone 및 NFS 서비스 실행, 마운트 모델의 Rclone, Rclone에서 마운트된 폴더를 공유하는 NFS 서비스, 노드 중 하나에만 연결된 보조 IP를 유지했습니다.
이 구조에는 다음과 같은 구성 요소가 있습니다.
oci-rclone-architecture-diagram-oracle.zip
노드 간 전환 프로세스는 OTube에서 확인할 수 있습니다.
APP Server => inst-i6hjc-rclone-ha - Client Server
/mnt/nfs_rclone_v2 = Mount point client side
NFS - Floating IP = 172.10.0.100
RCLONE => nfs-rclone = Cluster Node1 = IP = 172.10.0.287
RCLONE STANDBY => inst-e2fc3-rclone-ha = Cluster Node 2 - IP = 172.10.0.121
NFS - SHARE
/mnt/nfs_rclone = From Object Storage
영역 간 백업을 사용하여 재해 복구를 만들 수 있습니다. 설정에서 변수를 사용하는 경우 Rclone 구성은 정적입니다.
oci-nfs-cluster-architecture-diagram-oracle.zip
Disaster Recovery의 경우:
- 다른 영역에 데이터 복제본을 생성하여 재해 복구에 오브젝트 스토리지 복제를 사용합니다. 자세히 살펴보기: 복제 사용을 참조하십시오.
- 컴퓨트 인스턴스에 대한 재해 복구 솔루션을 생성합니다. 자세한 내용은 볼륨 복제를 참조하십시오.
이 구조에는 다음 구성요소가 있습니다.
- 지역
Oracle Cloud Infrastructure 지역은 가용성 도메인이라고 하는 하나 이상의 데이터 센터를 포함하는 지역화된 지리적 영역입니다. 지역은 다른 지역과 독립적이며 거리가 멀면 국가 또는 대륙을 가로질러 분리할 수 있습니다.
- 가용성 도메인
가용성 도메인은 한 지역 내에 있는 독립형 독립형 데이터 센터입니다. 각 가용성 도메인의 물리적 리소스는 내결함성을 제공하는 다른 가용성 도메인의 리소스와 격리됩니다. 가용성 도메인은 전원, 냉각 또는 내부 가용성 도메인 네트워크와 같은 인프라를 공유하지 않습니다. 따라서 특정 가용성 도메인에서 장애가 발생하면 해당 지역의 다른 가용성 도메인에 영향을 주지 않습니다.
- 결함 도메인
장애 도메인은 한 가용성 도메인 내에서 하드웨어와 인프라를 그룹화한 것입니다. 각 가용성 도메인에는 독립 전원과 하드웨어가 있는 장애 도메인 3개가 있습니다. 여러 장애 도메인에 리소스를 분산하면 애플리케이션이 장애 도메인 내부의 물리적 서버 장애, 시스템 유지보수 및 전원 장애를 허용할 수 있습니다.
- VCN(가상 클라우드 네트워크) 및 서브넷
VCN은 Oracle Cloud Infrastructure 지역에서 설정한 커스터마이징 가능한 소프트웨어 정의 네트워크입니다. 기존 데이터 센터 네트워크와 마찬가지로 VCN은 네트워크 환경을 완벽하게 제어할 수 있습니다. VCN에는 VCN 생성 후 변경할 수 있는 겹치지 않는 여러 CIDR 블록이 있을 수 있습니다. VCN을 서브넷으로 세그먼트할 수 있으며, 지역 또는 가용성 도메인으로 범위를 지정할 수 있습니다. 각 서브넷은 VCN의 다른 서브넷과 겹치지 않는 연속된 주소 범위로 구성됩니다. 생성 후 서브넷의 크기를 변경할 수 있습니다. 서브넷은 공용 또는 전용일 수 있습니다.
- 객체 스토리지
오브젝트 스토리지를 사용하면 데이터베이스 백업, 애널리틱스 데이터, 이미지 및 비디오와 같은 풍부한 컨텐츠를 비롯하여 모든 컨텐츠 유형의 구조적 및 비구조적 데이터에 신속하게 접근할 수 있습니다. 인터넷 또는 클라우드 플랫폼 내에서 직접 안전하게 데이터를 저장하고 검색할 수 있습니다. 성능 또는 서비스 신뢰성의 저하를 경험하지 않고도 스토리지를 원활하게 확장할 수 있습니다. 빠르고 즉각적이며 자주 액세스하는 데 필요한 "핫" 스토리지에 표준 스토리지를 사용합니다. 장기간 보존하고 거의 액세스하지 않는 "콜드" 스토리지에 아카이브 스토리지를 사용합니다.
- 복제본
Rclone은 클라우드 스토리지에서 파일을 관리하는 오픈 소스 명령행 프로그램으로 NFS를 통해 오브젝트 스토리지를 제공하는 데 사용됩니다.
- Corosync 및 Pacemaker
Corosync 및 Pacemaker는 소규모 및 대규모 클러스터 모두에 적합한 오픈 소스 서비스이며 응용 프로그램 내에서 고가용성을 제공합니다.
- OCI CLI
OCI CLI는 Linux Corosync/Pacemaker VirtualIP IPaddr2 리소스를 Oracle Cloud Infrastructure vNIC 보조 IP와 통합합니다.
- Oracle Linux
Oracle Linux 8.6 인스턴스는 이 환경을 호스트하는 데 사용됩니다. Linux Rclone/Corosync/Pacemaker를 지원하는 한 다른 Linux 배포판도 사용할 수 있습니다.
- 보조 IP
보조 전용 IP는 실행 후 인스턴스에 추가할 수 있습니다. 인스턴스의 기본 또는 보조 VNIC에 추가할 수 있습니다. 이 보조 IP는 노드 간에 부동됩니다. 노드가 작동 중지된 경우 유동 IP가 다른 IP로 전달됩니다. Corosync 및 Pacemaker는 이러한 변경 프로세스를 담당합니다.
추천
- 복제본
두 클러스터 노드에서 동일한 디렉토리 이름을 사용합니다. Rclone 파일 시스템을 사용하는 동안 문제가 발생하지 않도록 NFS 내보내기 구성에 주의하십시오. 그래픽 인터페이스를 사용하여 디렉토리를 마운트하는 경우 그래픽 인터페이스를 통해 모니터할 수 있습니다.
Linux 클러스터에서 Rclone 서비스를 구성하지 않은 경우 crontab에서 셸 스크립트를 사용하여 서버 시작 중 서비스를 시작하는 것이 좋습니다.
- VCN입니다.
VCN을 생성할 때 VCN의 서브넷에 연결할 리소스 수에 따라 필요한 CIDR 블록 수 및 각 블록의 크기를 결정합니다. 표준 전용 IP 주소 공간 내에 있는 CIDR 블록을 사용합니다.
전용 접속을 설정하려는 다른 네트워크(Oracle Cloud Infrastructure, 온프레미스 데이터 센터 또는 다른 클라우드 제공자)와 겹치지 않는 CIDR 블록을 선택합니다.
VCN을 생성한 후에는 해당 CIDR 블록을 변경, 추가 및 제거할 수 있습니다.
서브넷을 설계할 때 트래픽 플로우와 보안 요구사항을 고려합니다. 특정 계층 또는 역할 내의 모든 리소스를 보안 경계 역할을 할 수 있는 동일한 서브넷에 연결합니다.
- 컴퓨트 구성
이 아키텍처는 컴퓨트 호스트를 클러스터 노드에 호스트하기 위해 최소 리소스를 포함하는 E3 또는 E4 가변 구성의 Oracle Linux OS 이미지를 사용합니다. 애플리케이션에 더 많은 처리량 네트워크, 메모리 또는 코어가 필요한 경우 다른 구성을 선택할 수 있습니다.
- Oracle Linux 클러스터
Oracle Linux 인스턴스가 프로비저닝되면 공용 설명서에 설명된 대로 CLI를 설정하고 필요에 따라 Corosync/Pacemaker 클러스터를 설치 및 구성해야 합니다(stonith, quorum, resources, constraints 등). Corosync/Pacemaker 클러스터 및 CLI를 구성한 후에는 VirtualIP 리소스를 설정해야 합니다. 이 링크에서는 명령줄을 사용하여 Corosync/Pacemaker에서 VirtualIP 리소스를 설정하는 방법에 대한 간단한 예를 제공합니다. 웹 브라우저 UI를 통해서도 동일한 프로세스를 수행할 수 있습니다.
- 오브젝트 스토리지
[오브젝트 라이프사이클 관리]([자세히 탐색] 참조)를 사용하여 유형을 변경하고 보존 규칙을 사용하여 데이터를 보존([자세히 탐색] 참조)하여 파일을 업로드한 후 버킷의 데이터를 변경하고 관리합니다.
- Corosync 및 Pacemaker
Linux Corosync 및 Pacemaker를 OCI CLI와 통합할 때 가능한 한 많은 변수를 사용하여 스크립트를 실행 중인 서버와 관계없이 정적 상태로 유지합니다.