부록 C. 생성된 gdeploy 설정 파일에 대한 이해

Gdeploy는 설정 파일을 기반으로 Red Hat Gluster Storage를 사용하여 하나 이상의 머신을 자동으로 프로비저닝합니다.

Cockpit UI는 Red Hat Hyperconverged Infrastructure의 기본 수준 배포 수행에 적합한 gdeploy 설정 파일을 사용자가 생성할 수 있는 마법사를 제공합니다.

이 섹션에서는 Cockpit UI에 다음의 설정 세부 사항이 지정된 경우 생성되는 gdeploy 설정 파일에 대해 설명합니다.

  • IP 주소가 192.168.0.101, 192.168.0.102, 192.168.0.103인 3개의 호스트
  • 추가 패키지 또는 리포지터리가 없음
  • 모든 볼륨에 대한 Arbiter 설정
  • 스트라이프 크기가 256KB인 RAID 6로 구성된 12개의 브릭

다음 섹션이 포함된 gdeploy 설정 파일이 생성됩니다.

여기에 정의된 섹션에 대한 자세한 내용은 Red Hat Gluster Storage 관리 가이드를 참조하십시오. https://access.redhat.com/documentation/en-us/red_hat_gluster_storage/3.2/html/administration_guide/chap-red_hat_storage_volumes#chap-Red_Hat_Storage_Volumes-gdeploy_configfile.

[hosts] 섹션

[hosts]
192.168.0.101
192.168.0.102
192.168.0.103

[hosts] 섹션에서는 이 설정 파일에 따라 구성되는 세 개의 물리 머신의 IP 주소를 정의합니다.

[script1] 섹션

[script1]
action=execute
ignore_script_errors=no
file=/usr/share/ansible/gdeploy/scripts/grafton-sanity-check.sh -d sdb -h 192.168.0.101,192.168.0.102,192.168.0.103

[script1] 섹션에서는 오류 없이 gdeploy를 실행하도록 모든 호스트가 올바르게 설정되었는지 확인하기 위해 실행할 스크립트를 지정합니다.

기본 스토리지 설정

[disktype]
raid6

[diskcount]
12

[stripesize]
256

[disktype] 섹션에서는 모든 호스트에 대한 기본 스토리지의 하드웨어 설정을 지정합니다.

[diskcount] 섹션은 RAID 스토리지에서 디스크의 수를 지정합니다. JBOD 구성에서는 이 작업을 생략할 수 있습니다.

[stripesize] 섹션에서는 RAID 스토리지 스트라이프 크기를 킬로바이트로 지정합니다. JBOD 구성에서는 이 작업을 생략할 수 있습니다.

NTPD 활성화 및 재시작

[service1]
action=enable
service=ntpd

[service2]
action=restart
service=ntpd

이러한 서비스 섹션은 모든 호스트에서 Network Time Protocol Daemon(NTPD)를 활성화하고 재시작합니다.

모든 호스트에서 물리적 볼륨 생성

[pv1]
action=create
devices=sdb
ignore_pv_errors=no

[pv1] 섹션은 모든 호스트의 sdb 장치에서 물리적 볼륨을 생성합니다.

모든 호스트에서 볼륨 그룹 생성

[vg1]
action=create
vgname=gluster_vg_sdb
pvname=sdb
ignore_vg_errors=no

[vg1] 섹션은 모든 호스트에서 이전에 생성된 물리적 볼륨에 볼륨 그룹을 생성합니다.

논리 볼륨 씬 풀 생성

[lv1:{192.168.0.101,192.168.0.102}]
action=create
poolname=gluster_thinpool_sdb
ignore_lv_errors=no
vgname=gluster_vg_sdb
lvtype=thinpool
poolmetadatasize=16GB
size=1000GB

[lv2:192.168.0.103]
action=create
poolname=gluster_thinpool_sdb
ignore_lv_errors=no
vgname=gluster_vg_sdb
lvtype=thinpool
poolmetadatasize=16GB
size=20GB

[lv1:*] 섹션에서는 처음 두 개의 호스트에 메타 데이터 풀 크기를 16GB로 지정하여 1000GB의 씬 풀을 생성합니다.

[lv2:*] 섹션에서는 세 번째 호스트에 메타 데이터 풀 크기를 16GB로 지정하여 20GB의 씬 풀을 생성합니다. 이는 Arbiter 브릭에 사용되는 논리 볼륨입니다.

chunksize 변수도 사용할 수 있지만 주의하여 사용해야 합니다. chunksize는 스냅샷, 캐시 풀 및 씬 풀에 사용되는 청크의 크기를 정의합니다. 이 값은 기본적으로 킬로바이트로 지정됩니다. RAID 5 및 6 볼륨의 경우 gdeploy에서 스트라이프 크기 및 디스크 개수를 곱하여 기본 청크 크기를 계산합니다. RAID 10의 경우 기본 청크 크기는 256KB입니다.

주의

Red Hat은 최소한의 기본 청크 크기 사용을 권장합니다. 청크 크기가 너무 작고 볼륨에 메타데이터에 대한 공간이 부족한 경우 볼륨에서 데이터를 생성할 수 없습니다. Red Hat은 논리 볼륨을 모니터링하여 메타데이터 볼륨이 완전히 채워지기 전에 논리 볼륨이 확장되었는지 또는 더 많은 스토리지가 생성되었는지 확인할 것을 권장합니다.

기본 엔진 스토리지 생성

[lv3:{192.168.0.101,192.168.0.102}]
action=create
lvname=gluster_lv_engine
ignore_lv_errors=no
vgname=gluster_vg_sdb
mount=/gluster_bricks/engine
size=100GB
lvtype=thick

[lv4:192.168.0.103]
action=create
lvname=gluster_lv_engine
ignore_lv_errors=no
vgname=gluster_vg_sdb
mount=/gluster_bricks/engine
size=10GB
lvtype=thick

[lv3:*] 섹션에서는 처음 두 개의 호스트에 gluster_lv_engine이라는 100GB의 씩 프로비저닝 논리 볼륨을 생성합니다. 이 볼륨은 /gluster_bricks/engine에 마운트하도록 설정되어 있습니다.

[lv4:*] 섹션은 세 번째 호스트에 있는 엔진에 10GB의 씩 프로비저닝 논리 볼륨을 생성합니다. 이 볼륨은 /gluster_bricks/engine에 마운트하도록 설정되어 있습니다.

기본 데이터 및 가상 머신 부팅 디스크 스토리지 생성

[lv5:{192.168.0.101,192.168.0.102}]
action=create
lvname=gluster_lv_data
ignore_lv_errors=no
vgname=gluster_vg_sdb
mount=/gluster_bricks/data
lvtype=thinlv
poolname=gluster_thinpool_sdb
virtualsize=500GB

[lv6:192.168.0.103]
action=create
lvname=gluster_lv_data
ignore_lv_errors=no
vgname=gluster_vg_sdb
mount=/gluster_bricks/data
lvtype=thinlv
poolname=gluster_thinpool_sdb
virtualsize=10GB

[lv7:{192.168.0.101,192.168.0.102}]
action=create
lvname=gluster_lv_vmstore
ignore_lv_errors=no
vgname=gluster_vg_sdb
mount=/gluster_bricks/vmstore
lvtype=thinlv
poolname=gluster_thinpool_sdb
virtualsize=500GB

[lv8:192.168.0.103]
action=create
lvname=gluster_lv_vmstore
ignore_lv_errors=no
vgname=gluster_vg_sdb
mount=/gluster_bricks/vmstore
lvtype=thinlv
poolname=gluster_thinpool_sdb
virtualsize=10GB

[lv5:*][lv7:*] 섹션은 처음 두 개의 호스트에서 데이터 및 vmstore 볼륨의 브릭으로 500GB의 논리 볼륨을 생성합니다.

[lv6:*][lv8:*] 섹션은 세 번째 호스트에서 데이터 및 vmstore 볼륨의 Arbiter 브릭으로 10GB의 논리 볼륨을 생성합니다.

데이터 브릭은 /gluster_bricks/data에서 마운트하도록 설정되어 있으며 vmstore 브릭은 /gluster_bricks/vmstore에서 마운트하도록 설정되어 있습니다.

SELinux 파일 시스템 레이블 구성

[selinux]
yes

[selinux] 섹션은 생성된 스토리지를 Gluster 스토리지에 적합한 SELinux 파일 시스템 레이블로 설정해야 하는지 여부를 지정합니다.

glusterd 시작

[service3]
action=start
service=glusterd
slice_setup=yes

[service3] 섹션에서는 glusterd 서비스를 시작하고 glusterd에서 모든 시스템 리소스를 사용할 수 없도록 제어 그룹을 구성합니다. 자세한 내용은 Red Hat Enterprise Linux 리소스 관리 가이드를 참조하십시오. https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Resource_Management_Guide/index.html.

방화벽 설정

[firewalld]
action=add
ports=111/tcp,2049/tcp,54321/tcp,5900/tcp,5900-6923/tcp,5666/tcp,16514/tcp
services=glusterfs

[firewalld] 섹션에서는 Gluster 트래픽을 허용하는 데 필요한 포트를 엽니다.

Gluster 후크 비활성화

[script2]
action=execute
file=/usr/share/ansible/gdeploy/scripts/disable-gluster-hooks.sh

[script2] 섹션에서는 HCI (Hyper Converged Infrastructure) 로 중단할 수 있는 Gluster 후크를 비활성화합니다.

Gluster 볼륨 생성

[volume1]
action=create
volname=engine
transport=tcp
replica=yes
replica_count=3
key=group,storage.owner-uid,storage.owner-gid,network.ping-timeout,performance.strict-o-direct,network.remote-dio,cluster.granular-entry-heal
value=virt,36,36,30,on,off,enable
brick_dirs=192.168.0.101:/gluster_bricks/engine/engine,192.168.0.102:/gluster_bricks/engine/engine,192.168.0.103:/gluster_bricks/engine/engine
ignore_volume_errors=no
arbiter_count=1

[volume2]
action=create
volname=data
transport=tcp
replica=yes
replica_count=3
key=group,storage.owner-uid,storage.owner-gid,network.ping-timeout,performance.strict-o-direct,network.remote-dio,cluster.granular-entry-heal
value=virt,36,36,30,on,off,enable
brick_dirs=192.168.0.101:/gluster_bricks/data/data,192.168.0.102:/gluster_bricks/data/data,192.168.0.103:/gluster_bricks/data/data
ignore_volume_errors=no
arbiter_count=1

[volume3]
action=create
volname=vmstore
transport=tcp
replica=yes
replica_count=3
key=group,storage.owner-uid,storage.owner-gid,network.ping-timeout,performance.strict-o-direct,network.remote-dio,cluster.granular-entry-heal
value=virt,36,36,30,on,off,enable
brick_dirs=192.168.0.101:/gluster_bricks/vmstore/vmstore,192.168.0.102:/gluster_bricks/vmstore/vmstore,192.168.0.103:/gluster_bricks/vmstore/vmstore
ignore_volume_errors=no
arbiter_count=1

[volume*] 섹션에서는 세 개의 Arbitrated Replicated의 Red Hat Gluster Storage 볼륨을 구성합니다(engine, data, vmstore). 세 번째 호스트의 각 볼륨에는 한 개의 Arbiter 브릭이 있습니다.

keyvalue 매개 변수는 다음 옵션을 설정하는데 사용됩니다.

  • group=virt
  • storage.owner-uid=36
  • storage.owner-gid=36
  • network.ping-timeout=30
  • performance.strict-o-direct=on
  • network.remote-dio=off
  • cluster.granular-entry-heal=enable