오브젝트 스토리지 서비스 ( swift ) 4. 초기 링 생성 및 배포
페이지 정보
작성자 jkchoi 작성일 21-11-26 09:21 조회 4,260 댓글 0본문
오브젝트 스토리지 서비스를 시작하기 전에 초기 계정, 컨테이너 및 오브젝트 링을 생성해야 합니다.
링 빌더는 각 노드가 스토리지 아키텍처를 결정하고 배포하는 데 사용하는 구성 파일을 생성합니다.
단순화를 위해 이 가이드에서는 최대 파티션이 2^10(1024)이고 각 개체의 복제본이 3개 있으며 파티션을 두 번 이상 이동하는 데 최소 1시간의 시간이 있는 영역 1개와 영역 2개를 사용합니다.
오브젝트 스토리지의 경우 파티션은 기존 파티션 테이블이 아닌 스토리지 장치의 디렉토리를 나타냅니다. 자세한 내용은 배포 안내서 를 참조하십시오 .
1. 계정 링 만들기
계정 서버는 계정 링을 사용하여 컨테이너 목록을 유지 관리합니다.
1) /etc/swift 디렉토리로 변경합니다 .
2) 기본 account.builder 파일을 만듭니다 .
# swift-ring-builder account.builder create 10 3 1
3) 링에 각 스토리지 노드를 추가합니다.
# swift-ring-builder account.builder \
add --region 1 --zone 1 --ip STORAGE_NODE_MANAGEMENT_INTERFACE_IP_ADDRESS --port 6202 \
--device DEVICE_NAME --weight DEVICE_WEIGHT
STORAGE_NODE_MANAGEMENT_INTERFACE_IP_ADDRESS스토리지 노드에 있는 관리 네트워크의 IP 주소로 바꿉니다.
DEVICE_NAME동일한 스토리지 노드에서 스토리지 디바이스 이름으로 교체하십시오.
예를 들어 /dev/sdb 저장 장치와 가중치가 100인 저장 장치 노드 설치 및 구성의 첫 번째 저장 장치 노드를 사용합니다.
# swift-ring-builder account.builder add \
--region 1 --zone 1 --ip 10.0.0.51 --port 6202 --device sdb --weight 100
각 스토리지 노드의 각 스토리지 장치에 대해 이 명령을 반복합니다. 예제 아키텍처에서 명령을 네 가지 변형으로 사용합니다.
# swift-ring-builder account.builder add \
--region 1 --zone 1 --ip 10.0.0.51 --port 6202 --device sdb --weight 100
Device d0r1z1-10.0.0.51:6202R10.0.0.51:6202/sdb_"" with 100.0 weight got id 0
# swift-ring-builder account.builder add \
--region 1 --zone 1 --ip 10.0.0.51 --port 6202 --device sdc --weight 100
Device d1r1z2-10.0.0.51:6202R10.0.0.51:6202/sdc_"" with 100.0 weight got id 1
# swift-ring-builder account.builder add \
--region 1 --zone 2 --ip 10.0.0.52 --port 6202 --device sdb --weight 100
Device d2r1z3-10.0.0.52:6202R10.0.0.52:6202/sdb_"" with 100.0 weight got id 2
# swift-ring-builder account.builder add \
--region 1 --zone 2 --ip 10.0.0.52 --port 6202 --device sdc --weight 100
Device d3r1z4-10.0.0.52:6202R10.0.0.52:6202/sdc_"" with 100.0 weight got id 3
4) 링 내용을 확인합니다.
# swift-ring-builder account.builder
account.builder, build version 4
1024 partitions, 3.000000 replicas, 1 regions, 2 zones, 4 devices, 100.00 balance, 0.00 dispersion
The minimum number of hours before a partition can be reassigned is 1
The overload factor is 0.00% (0.000000)
Devices: id region zone ip address port replication ip replication port name weight partitions balance meta
0 1 1 10.0.0.51 6202 10.0.0.51 6202 sdb 100.00 0 -100.00
1 1 1 10.0.0.51 6202 10.0.0.51 6202 sdc 100.00 0 -100.00
2 1 2 10.0.0.52 6202 10.0.0.52 6202 sdb 100.00 0 -100.00
3 1 2 10.0.0.52 6202 10.0.0.52 6202 sdc 100.00 0 -100.00
5) 링 균형 재조정:
# swift-ring-builder account.builder rebalance
Reassigned 1024 (100.00%) partitions. Balance is now 0.00. Dispersion is now 0.00
2. 컨테이너 링 생성
컨테이너 서버는 컨테이너 링을 사용하여 개체 목록을 유지 관리합니다. 그러나 개체 위치는 추적하지 않습니다.
1) /etc/swift디렉토리로 변경합니다 .
2) 기본 container.builder파일을 만듭니다 .
# swift-ring-builder container.builder create 10 3 1
3) 링에 각 스토리지 노드를 추가합니다.
# swift-ring-builder container.builder \
add --region 1 --zone 1 --ip STORAGE_NODE_MANAGEMENT_INTERFACE_IP_ADDRESS --port 6201 \
--device DEVICE_NAME --weight DEVICE_WEIGHT
STORAGE_NODE_MANAGEMENT_INTERFACE_IP_ADDRESS를 스토리지 노드에 있는 관리 네트워크의 IP 주소로 바꿉니다.
DEVICE_NAME을 동일한 스토리지 노드의 스토리지 디바이스 이름으로 바꿉니다.
예를 들어 /dev/sdb 저장 장치와 가중치가 100인 저장 장치 노드 설치 및 구성의 첫 번째 저장 장치 노드를 사용합니다.
# swift-ring-builder container.builder add \
--region 1 --zone 1 --ip 10.0.0.51 --port 6201 --device sdb --weight 100
각 스토리지 노드의 각 스토리지 장치에 대해 이 명령을 반복합니다. 예제 아키텍처에서 명령을 네 가지 변형으로 사용합니다.
# swift-ring-builder container.builder add \
--region 1 --zone 1 --ip 10.0.0.51 --port 6201 --device sdb --weight 100
Device d0r1z1-10.0.0.51:6201R10.0.0.51:6201/sdb_"" with 100.0 weight got id 0
# swift-ring-builder container.builder add \
--region 1 --zone 1 --ip 10.0.0.51 --port 6201 --device sdc --weight 100
Device d1r1z2-10.0.0.51:6201R10.0.0.51:6201/sdc_"" with 100.0 weight got id 1
# swift-ring-builder container.builder add \
--region 1 --zone 2 --ip 10.0.0.52 --port 6201 --device sdb --weight 100
Device d2r1z3-10.0.0.52:6201R10.0.0.52:6201/sdb_"" with 100.0 weight got id 2
# swift-ring-builder container.builder add \
--region 1 --zone 2 --ip 10.0.0.52 --port 6201 --device sdc --weight 100
Device d3r1z4-10.0.0.52:6201R10.0.0.52:6201/sdc_"" with 100.0 weight got id 3
4) 링 내용을 확인합니다.
# swift-ring-builder container.builder
container.builder, build version 4
1024 partitions, 3.000000 replicas, 1 regions, 2 zones, 4 devices, 100.00 balance, 0.00 dispersion
The minimum number of hours before a partition can be reassigned is 1
The overload factor is 0.00% (0.000000)
Devices: id region zone ip address port replication ip replication port name weight partitions balance meta
0 1 1 10.0.0.51 6201 10.0.0.51 6201 sdb 100.00 0 -100.00
1 1 1 10.0.0.51 6201 10.0.0.51 6201 sdc 100.00 0 -100.00
2 1 2 10.0.0.52 6201 10.0.0.52 6201 sdb 100.00 0 -100.00
3 1 2 10.0.0.52 6201 10.0.0.52 6201 sdc 100.00 0 -100.00
5) 링 균형 재조정:
# swift-ring-builder container.builder rebalance
Reassigned 1024 (100.00%) partitions. Balance is now 0.00. Dispersion is now 0.00
3. 객체 링 생성
개체 서버는 개체 링을 사용하여 로컬 장치의 개체 위치 목록을 유지 관리합니다.
1) /etc/swift 디렉토리로 변경합니다.
2) 기본 object.builder파일을 만듭니다.
# swift-ring-builder object.builder create 10 3 1
3) 링에 각 스토리지 노드를 추가합니다.
# swift-ring-builder object.builder \
add --region 1 --zone 1 --ip STORAGE_NODE_MANAGEMENT_INTERFACE_IP_ADDRESS --port 6200 \
--device DEVICE_NAME --weight DEVICE_WEIGHT
STORAGE_NODE_MANAGEMENT_INTERFACE_IP_ADDRESS를 스토리지 노드에 있는 관리 네트워크의 IP 주소로 바꿉니다.
DEVICE_NAME을 동일한 스토리지 노드의 스토리지 디바이스 이름으로 바꿉니다.
예를 들어 /dev/sdb 저장 장치와 가중치가 100인 저장 장치 노드 설치 및 구성의 첫 번째 저장 장치 노드를 사용합니다.
# swift-ring-builder object.builder add \
--region 1 --zone 1 --ip 10.0.0.51 --port 6200 --device sdb --weight 100
각 스토리지 노드의 각 스토리지 장치에 대해 이 명령을 반복합니다. 예제 아키텍처에서 명령을 네 가지 변형으로 사용합니다.
# swift-ring-builder object.builder add \
--region 1 --zone 1 --ip 10.0.0.51 --port 6200 --device sdb --weight 100
Device d0r1z1-10.0.0.51:6200R10.0.0.51:6200/sdb_"" with 100.0 weight got id 0
# swift-ring-builder object.builder add \
--region 1 --zone 1 --ip 10.0.0.51 --port 6200 --device sdc --weight 100
Device d1r1z2-10.0.0.51:6200R10.0.0.51:6200/sdc_"" with 100.0 weight got id 1
# swift-ring-builder object.builder add \
--region 1 --zone 2 --ip 10.0.0.52 --port 6200 --device sdb --weight 100
Device d2r1z3-10.0.0.52:6200R10.0.0.52:6200/sdb_"" with 100.0 weight got id 2
# swift-ring-builder object.builder add \
--region 1 --zone 2 --ip 10.0.0.52 --port 6200 --device sdc --weight 100
Device d3r1z4-10.0.0.52:6200R10.0.0.52:6200/sdc_"" with 100.0 weight got id 3
4) 링 내용을 확인합니다.
# swift-ring-builder object.builder
object.builder, build version 4
1024 partitions, 3.000000 replicas, 1 regions, 2 zones, 4 devices, 100.00 balance, 0.00 dispersion
The minimum number of hours before a partition can be reassigned is 1
The overload factor is 0.00% (0.000000)
Devices: id region zone ip address port replication ip replication port name weight partitions balance meta
0 1 1 10.0.0.51 6200 10.0.0.51 6200 sdb 100.00 0 -100.00
1 1 1 10.0.0.51 6200 10.0.0.51 6200 sdc 100.00 0 -100.00
2 1 2 10.0.0.52 6200 10.0.0.52 6200 sdb 100.00 0 -100.00
3 1 2 10.0.0.52 6200 10.0.0.52 6200 sdc 100.00 0 -100.00
5) 링 균형 재조정
# swift-ring-builder object.builder rebalance
Reassigned 1024 (100.00%) partitions. Balance is now 0.00. Dispersion is now 0.00
4. 링 구성 파일 배포
account.ring.gz, container.ring.gz 및 object.ring.gz 파일을 각 스토리지 노드 및 프록시 서비스를 실행하는 추가 노드의 /etc/swift 디렉토리에 복사합니다.
댓글목록 0
등록된 댓글이 없습니다.