예상 소요 시간: 4일
작동 가능 구성요소 소유자: HW
기술 프로필: 배포 엔지니어
다음 작업을 완료하여 Google Distributed Cloud (GDC) 에어갭 환경에서 실행되는 기기와 시스템을 재설정합니다.
6.1. 목차
- 재설정 절차 개요
- HPE 서버 재설정
- NetApp StorageGRID 재설정
- NetApp ONTAP 재설정
- Thales HSM 재설정
- Palo Alto 방화벽 재설정
- Cisco 스위치 재설정
- 추가 리소스
6.2. 기본 요건 및 안전
6.2.1. 필수 액세스 권한
- 물리적 액세스: 크래시 카트 장비가 있는 DC 룸 액세스
- 네트워크 액세스: 관리 인터페이스 연결 또는 콘솔 액세스
- 사용자 인증 정보: 모든 시스템에 대한 관리자 액세스 권한
- 백업: 모든 보안 비밀 및 구성 데이터의 전체 백업
6.2.2. 안전 체크리스트
- [ ] 인프라에 대한 물리적 액세스
- [ ] 비상용 보안 비밀이 오프라인으로 보호됨
- [ ] 인프라 백업 (필요한 경우)
6.3. 재설정 절차 개요
기존 GDC 셀 영역의 재설정 절차는 모든 HW 어플라이언스를 종속성에서 해제한 다음 패브릭 상태로 되돌리는 것을 목표로 합니다.
6.3.1. 인프라 종속 항목
구성요소에는 재설정 순서를 결정하는 다음과 같은 상호 종속성이 있습니다.
- 서버, NetApp ONTAP, NetApp StorageGrid는 ILO, 디스크, 테넌트, 버킷의 암호화 키를 제공하는 Thales HSM 어플라이언스를 사용합니다.
- Thales HSM 어플라이언스는 IDP/경계 방화벽 및 Cisco 스위치 연결을 사용합니다.
- IDP/경계 방화벽은 Cisco 스위치 네트워킹 인프라를 사용합니다.
- Cisco 스위치는 재설정 후 연결이 중단되므로 마지막 리소스로 재설정해야 합니다.
6.3.2. Reset Order (중요)
시스템 잠금을 방지하려면 다음 순서를 정확히 따르세요.
- HPE 서버 - 먼저 HSM 종속 항목 삭제
- NetApp StorageGRID - 암호화 해제 및 노드 재설정
- NetApp ONTAP - HSM 사용 중지 및 클러스터 재설정
- Thales HSM - 초기화 및 신뢰할 수 있는 루트 삭제
- 방화벽 - 기본 구성으로 초기화
- Cisco 스위치 - 마지막으로 재설정 (연결이 중단됨)

6.4. Hewlett Packard Enterprise 보안 삭제
사용 가능한 재설정 작업에는 세 가지 유형이 있으며, 각각 iLO 키 관리자 구성을 정리하는 대체 방법으로 사용됩니다. 기본 목표는 하드웨어 보안 모듈 (HSM)에 대한 종속성을 삭제하는 것입니다.
일반적으로 ILO 초기화는 KMS 구성을 정리하는 데 충분하며, 다음 부트스트랩에서 서버 부트스트랩 프로세스는 서버 설정 BIOS 매개변수를 초기화하고 디스크를 삭제하고 서버를 다시 초기화합니다.
이 섹션에서는 다음 세 가지 유형의 삭제를 수행하는 방법을 설명합니다.
이 삭제 스크립트는 example.csv라는 예시 CSV 파일을 사용합니다.
계속하기 전에 다음 CSV 파일을 준비하세요.
root@example-bootstrapper:/home/ubuntu/md# cat example.csv
ip,passd
10.251.248.62,XXXXXXXX
10.251.248.64,XXXXXXXX
10.251.248.66,XXXXXXXX
10.251.248.68,XXXXXXXX
10.251.248.70,XXXXXXXX
10.251.248.72,XXXXXXXX
10.251.248.74,XXXXXXXX
10.251.248.76,XXXXXXXX
6.4.1. iLO 초기화
일반 iLO 초기화를 완료합니다.
serversreset.py이라는 파일을 만들고 다음 Python 스크립트를 추가합니다.import csv import argparse import requests import urllib3 import json urllib3.disable_warnings() PARSER = argparse.ArgumentParser(prog='serversreset.py', \ description='reset ilo to factory settings') PARSER.add_argument('-csv', '--file', help='choose the csv file', type=str) ARGS = vars(PARSER.parse_args()) headers = {'content-type': 'application/json'} payload = {'ResetType': 'Default'} url = '/redfish/v1/Managers/1/Actions/Oem/Hpe/HpeiLO.ResetToFactoryDefaults/' with open(ARGS['file'], encoding="utf8", mode='r') as csv_file: CSV_READER = csv.DictReader(csv_file) for row in CSV_READER: try: system = requests.post('https://'+row['ip']+url,data=json.dumps(payload),headers=headers,verify=False,auth=('administrator',row['passd'])) systemData = system.json() print(systemData) except Exception as err: print(err)다음 명령어를 실행하고
example.csv을 CSV 파일로 바꿉니다.python3 serversreset.py -csv example.csv출력은 다음과 비슷하게 표시되어야 합니다.
{'error': {'code': 'iLO.0.10.ExtendedInfo', 'message': 'See @Message.ExtendedInfo for more information.', '@Message.ExtendedInfo': [{'MessageId': 'iLO.2.15.ResetInProgress'}]}} {'error': {'code': 'iLO.0.10.ExtendedInfo', 'message': 'See @Message.ExtendedInfo for more information.', '@Message.ExtendedInfo': [{'MessageId': 'iLO.2.15.ResetInProgress'}]}} {'error': {'code': 'iLO.0.10.ExtendedInfo', 'message': 'See @Message.ExtendedInfo for more information.', '@Message.ExtendedInfo': [{'MessageId': 'iLO.2.15.ResetInProgress'}]}}
6.4.2. 추가 수동 iLO 단계
iLO UI를 사용하여 수동 iLO 재설정을 실행합니다.
iLO > 관리 > 키 관리자 > 설정 삭제를 선택합니다.
BIOS 콘솔에서 System Utilities(시스템 유틸리티) > System Configuration(시스템 구성) > Embedded Raid(내장 RAID) > Administration(관리) > Reset To Default(기본값으로 재설정)을 선택합니다.
인터페이스를 LOM1에 대해서만 netboot로 설정합니다. 모든 GPU 노드에는 LOM1 카드가 없으며 대신 Intel 카드가 있습니다.
iLO 네트워크를 DHCP로 설정합니다.
6.4.3. BIOS 재설정
다음 단계를 따라 BIOS를 재설정하세요.
biosreset.py이라는 파일을 만들고 다음 Python 스크립트를 추가합니다.import csv import argparse import requests import urllib3 import json urllib3.disable_warnings() PARSER = argparse.ArgumentParser(prog='biosreset.py', \ description='reset BIOS to factory settings') PARSER.add_argument('-csv', '--file', help='choose the csv file', type=str) ARGS = vars(PARSER.parse_args()) headers = {'content-type': 'application/json'} payload = {} with open(ARGS['file'], encoding="utf8", mode='r') as csv_file: CSV_READER = csv.DictReader(csv_file) for row in CSV_READER: try: system = requests.post('https://'+row['ip']+'/redfish/v1/systems/1/bios/Actions/Bios.ResetBios/',data=json.dumps(payload),headers=headers,verify=False,auth=('administrator',row['passd'])) systemData = system.json() print(systemData) except Exception as err: print(err)다음 명령어를 실행하고
example.csv을 CSV 파일로 바꿉니다.python3 biosreset.py -csv example.csv출력은 다음과 비슷하게 표시되어야 합니다.
{'error': {'code': 'iLO.0.10.ExtendedInfo', 'message': 'See @Message.ExtendedInfo for more information.', '@Message.ExtendedInfo': [{'MessageId': 'iLO.2.15.SystemResetRequired'}]}}명령어를 실행하면 서버가 전원 켜짐 상태가 됩니다. 다음 스크립트를 실행하여 모든 서버를 종료해야 합니다.
import csv import argparse import requests import urllib3 import json urllib3.disable_warnings() PARSER = argparse.ArgumentParser(prog='power-ilo.py', \ description='power off server') PARSER.add_argument('-csv', '--file', help='choose the csv file', type=str) ARGS = vars(PARSER.parse_args()) headers = {'content-type': 'application/json'} payload = {'ResetType': 'PushPowerButton'} with open(ARGS['file'], encoding="utf8", mode='r') as csv_file: CSV_READER = csv.DictReader(csv_file) for row in CSV_READER: try: system = requests.post( 'https://' + row['ip'] + '/redfish/v1/systems/1/Actions/ComputerSystem.Reset/', data=json.dumps(payload), headers=headers, verify=False, auth=('administrator', row['passd'])) systemData = system.json() if 'Success' in systemData['error']['@Message.ExtendedInfo'][0][ 'MessageId']: print(f"ilo with ip {row['ip']} succeeded") #print(systemData) else: print(f"ilo with ip {row['ip']} failed") print(systemData) except Exception as err: print(err)서버를 수동으로 종료합니다.
python3 power-ilo.py -csv ~/servers.csv- (선택사항) 상태를 확인하려면 다음 스크립트를 사용하세요.
import csv import argparse import requests import urllib3 import json urllib3.disable_warnings() PARSER = argparse.ArgumentParser(prog='ilostatus.py', \ description='check power status of server') PARSER.add_argument('-csv', '--file', help='choose the csv file', type=str) ARGS = vars(PARSER.parse_args()) headers = {'content-type': 'application/json'} with open(ARGS['file'], encoding="utf8", mode='r') as csv_file: CSV_READER = csv.DictReader(csv_file) for row in CSV_READER: try: system = requests.get('https://'+row['ip']+'/redfish/v1/Systems/1',headers=headers,verify=False,auth=('administrator',row['passd'])) systemData = system.json() print(f"ilo with ip {row['ip']} has power status of {systemData['PowerState']}") if 'Success' in systemData['error']['@Message.ExtendedInfo'][0]['MessageId']: print(f"ilo with ip {row['ip']} succeeded") print(systemData) else: print(f"ilo with ip {row['ip']} failed") print(systemData) except Exception as err: pass다음 명령어를 실행합니다.
python3 ilostatus.py -csv ~/servers.csv출력은 다음과 비슷하게 표시되어야 합니다.
ilo with ip 172.22.112.96 has power status of Off ilo with ip 172.22.112.97 has power status of Off ilo with ip 172.22.112.98 has power status of Off ilo with ip 172.22.112.100 has power status of Off ilo with ip 172.22.112.101 has power status of Off ilo with ip 172.22.112.102 has power status of Off6.4.4. 보안 삭제
서버 POST 화면에서 F10을 누릅니다. 그러면 Intelligent Provisioning이 실행됩니다.
Intelligent Provisioning이 실행되면 First Time Setup Wizard(초기 설정 마법사) 옆에 있는 아래쪽 화살표를 클릭하여 마법사를 건너뜁니다.
마법사 프롬프트를 건너뛰고 예를 클릭합니다.
유지관리 실행을 클릭합니다.
원 버튼 보안 삭제를 클릭합니다.
권한이 부족하다는 메시지가 표시됩니다. 로그인을 클릭하고 관리자 사용자 인증 정보를 입력합니다.
완료를 클릭합니다.
제출을 클릭합니다.
완전 삭제를 실행할 것인지 확인한 후 ERASE를 입력합니다.
삭제를 클릭합니다.
예를 클릭하여 확인합니다.
작업 대기열 섹션에서 지금 실행을 클릭합니다.
2분 이내에 메시지에 따라 확인을 클릭합니다.
머신이 재부팅됩니다. 약 10~15분 동안 아무것도 만지지 마세요.
보안 삭제가 완료되면 POST 부팅 중에 F9를 클릭하여 BIOS로 돌아갑니다.
Embedded Applications > Integrated Management Log (IML) > View IML > OK(내장 애플리케이션 > 통합 관리 로그(IML) > IML 보기 > 확인)로 이동합니다. 원버튼 보안 삭제 완료 메시지가 표시됩니다.

serversreset.py이라는 파일을 만들고 다음 Python 스크립트를 추가합니다.import csv import argparse import requests import urllib3 import json urllib3.disable_warnings() PARSER = argparse.ArgumentParser(prog='secureerase.py', \ description='reset ilo to factory settings') PARSER.add_argument('-csv', '--file', help='choose the csv file', type=str) ARGS = vars(PARSER.parse_args()) headers = {'content-type': 'application/json'} payload = {'SystemROMAndiLOErase': True , 'UserDataErase': True} with open(ARGS['file'], encoding="utf8", mode='r') as csv_file: CSV_READER = csv.DictReader(csv_file) for row in CSV_READER: try: system = requests.post('https://'+row['ip']+'/redfish/v1/Systems/1/Actions/Oem/Hpe/HpeComputerSystemExt.SecureSystemErase/',data=json.dumps(payload),headers=headers,verify=False,auth=('administrator',row['passd'])) systemData = system.json() print(systemData) except Exception as err: print(err)다음 명령어를 실행하고
example.csv을 CSV 파일로 바꿉니다.python serversreset.py -csv example.csv명령어를 실행하면 서버가 전원 오프 상태가 됩니다. 서버를 수동으로 켜야 합니다.
6.5. NetApp StorageGRID 기기 재설정
6.5.1. 기본 요건
NetApp StorageGRID 기기를 재설정하기 전에 다음을 읽어보세요. - 노드 암호화 또는 드라이브 암호화가 사용 설정된 시스템의 경우 HSM 사이트 암호화 사용 중지에 설명된 단계를 실행해야 합니다. 그렇지 않으면 StorageGRID 시스템을 재설정합니다.
6.5.2. 스토리지 컨트롤러 노드에서 StorageGRID HSM 사이트 암호화 사용 중지
스토리지 컨트롤러 노드의 IP를 가져오려면 (각 스토리지 노드에 IP 2개) 다음을 실행합니다.
$ kubectl get objectstoragestoragenodes -n gpc-system -o custom-columns="NAME:metadata.name,COMPUTE_NODEA_IP:.spec.network.controllerAManagementIP,COMPUTE_NODEB_IP:.spec.network.controllerBManagementIP"
NAME COMPUTE_NODEA_IP COMPUTE_NODEB_IP
ak-ac-objs01 172.22.210.166/24 172.22.210.167/24
ak-ac-objs02 172.22.210.170/24 172.22.210.171/24
ak-ac-objs03 172.22.210.174/24 172.22.210.175/24
이전에 HSM으로 StorageGRID 시스템을 사용 설정한 경우 초기화를 진행하기 전에 암호화를 삭제해야 합니다. 기기를 재설정하기 전에 각 저장소 노드에 대해 다음 단계를 실행합니다. 이렇게 하지 않으면 디스크와 시스템이 잠길 수 있습니다.
객체 스토리지 사이트에 로그인하고 사이드바에 있는 노드 목록으로 이동합니다.
스토리지 노드 이름을 클릭합니다.
SANtricity System Manager 탭으로 이동합니다.
설정 > 시스템 > 보안 키 관리로 이동합니다.

외부 키 관리 사용 중지를 선택하고 비밀번호를 입력하여 백업 키를 다운로드합니다.
6.5.3. StorageGRID 관리 노드 및 스토리지 컴퓨팅 노드 초기화
관리 노드의 IP를 가져오려면 다음을 실행합니다.
$ kubectl get objectstorageadminnodes -n gpc-system
NAME SITE NAME MANAGEMENT IP READY AGE
ak-ac-objsadm01 ak-obj-site-1 172.22.210.160/24 True 12d
ak-ac-objsadm02 ak-obj-site-1 172.22.210.162/24 True 12d
스토리지 컴퓨팅 노드의 IP를 가져오려면 다음을 실행하세요.
$ kubectl get objectstoragestoragenodes -n gpc-system
NAME SITE NAME MANAGEMENT IP READY AGE
ak-ac-objs01 ak-obj-site-1 172.22.210.164/24 True 12d
ak-ac-objs02 ak-obj-site-1 172.22.210.168/24 True 12d
ak-ac-objs03 ak-obj-site-1 172.22.210.172/24 True 12d
StorageGRID 기기를 초기화하려면 사이트의 각 노드 (스토리지 노드와 관리 노드 모두)에 대해 다음 단계를 완료해야 합니다.
각 노드의 관리 IP를 가져옵니다. 이는 cell.yaml에서
ObjectStorageStorageNode및ObjectStorageAdminNode을 찾아 가져올 수 있습니다. 루트 관리자 클러스터의 노드 리소스에서도 확인할 수 있습니다.비밀번호를 가져오고 SSH를 사용하여 노드에 연결합니다.
노드에 StorageGRID가 설치되어 있지 않으면
admin/bycast또는root/netapp1!을 각각 사용자 이름과 비밀번호로 사용합니다. SSH가 작동하지 않으면 SSH 포트 8022를 사용하세요.노드에 StorageGRID가 설치되어 있지만 사이트 설정이 없는 경우
admin/bycast또는root/bycast을 각각 사용자 이름과 비밀번호로 사용합니다.사이트가 설정되어 있고 노드가 사이트에 속한 경우:
프로비저닝 암호를 가져옵니다. 이는 cell.yaml 파일에서 확인할 수 있는
grid-secret이라는 보안 비밀에 저장됩니다. 원하는 경우 다음 명령어를 실행할 수 있습니다. 비밀번호를 base64로 디코딩해야 합니다.echo $(kubectl get secret -n gpc-system grid-secret -ojsonpath="{.data.grid-management-provisioning-password}" | base64 -d)Object Storage Site UI에서 Maintenance > System > Recovery package로 이동하여 프로비저닝 비밀번호를 입력한 후 복구 패키지를 다운로드합니다.

다운로드한 후 tar 파일을 추출합니다. 여기에는 또 다른 tarball인
GIDXXXXX_REV1_SAID.zip이 포함됩니다. tarball을 추출하여Passwords.txt파일을 찾습니다. ssh 및 루트 액세스 모두에Password를 사용하고SSH Access Password는 무시합니다.샘플 파일:
Password Data for Grid ID: 546285, Revision: 1 Revision Prepared on: 2022-06-13 20:49:56 +0000 Server "root" and "admin" Account Passwords Server Name Password SSH Access Password ____________________________________________________________ alatl14-gpcstgeadm01 <removed> <removed> alatl14-gpcstgeadm02 <removed> <removed> alatl14-gpcstgecn01 <removed> n/a alatl14-gpcstgecn02 <removed> n/a alatl14-gpcstgecn03 <removed> n/a
노드의 직렬 콘솔을 열거나 SSH를 사용하여 노드에 연결합니다.
ssh -o ProxyCommand=None -o StrictHostKeyChecking=no \ -o UserKnownHostsFile=/dev/null admin@<node-management-ip>로그인 사용자 인증 정보를 입력합니다. sudo 권한을 얻으려면
su -를 입력하고 두 번째 단계에서 얻은 루트 비밀번호를 입력합니다.sgareinstall명령어를 입력하고y을 눌러 기기 재설정을 계속합니다.기기에서 암호화가 사용 설정된 경우 재설정이 완료된 후 이 단계에 따라 디스크 풀과 SSD 캐시를 삭제합니다.
6.5.4. 스토리지 컨트롤러 노드에서 디스크 풀 및 SSD 캐시 삭제
스토리지 컨트롤러 노드의 IP를 가져오려면 (각 스토리지 노드에 IP 2개) 다음을 실행합니다.
$ kubectl get objectstoragestoragenodes -n gpc-system -o custom-columns="NAME:metadata.name,COMPUTE_NODEA_IP:.spec.network.controllerAManagementIP,COMPUTE_NODEB_IP:.spec.network.controllerBManagementIP"
NAME COMPUTE_NODEA_IP COMPUTE_NODEB_IP
ak-ac-objs01 172.22.210.166/24 172.22.210.167/24
ak-ac-objs02 172.22.210.170/24 172.22.210.171/24
ak-ac-objs03 172.22.210.174/24 172.22.210.175/24
기기에서 암호화가 사용 설정되어 있고 마지막 섹션에 따라 노드가 재설정된 경우 드라이브를 지우는 것과 함께 디스크 풀을 삭제해야 합니다. 새 디스크 풀을 만들 수 있도록 사이트를 다시 부트스트랩하기 전에 이 작업을 실행해야 합니다. 사이트의 각 스토리지 노드 (e2860 스토리지 컨트롤러)(controllerAManagementIP라고도 함)에 대해 다음 단계를 따르세요.
웹브라우저를 열어
https://<storage-node-controller-ip>:8443로 이동하고 사용자 인증 정보를 입력합니다. SANtricity 사용자 인증 정보에 액세스할 수 없는 경우 이 단계를 따르세요.스토리지 > 풀 및 볼륨 그룹으로 이동합니다.
SSD 캐시 삭제:
SSD 캐시를 선택하여 강조 표시합니다.
일반적이지 않은 작업 드롭다운 메뉴를 선택하고 삭제를 클릭합니다.

디스크 풀을 삭제합니다.
디스크 풀을 선택하여 강조 표시합니다.
일반적이지 않은 작업 드롭다운 메뉴를 선택하고 삭제를 클릭합니다.

새 디스크 풀을 만들어 보세요. 생성을 차단하고 드라이브를 지우라는 대화상자가 표시됩니다.

할당되지 않은 보안 지원 드라이브는 풀 생성에 사용할 수 없으므로 먼저 삭제해야 합니다. 예 - 작업에 사용할 드라이브를 선택합니다 라디오 버튼을 클릭한 후 삭제할 드라이브를 모두 선택합니다. 삭제 작업을 확인하고 확인을 클릭합니다. 새 풀을 만들지 마세요.
노드 암호화 삭제 섹션에 설명된 단계를 따릅니다.
6.5.5. StorageGRID 관리 노드 및 스토리지 컴퓨팅 노드에서 노드 암호화 삭제
관리 노드의 IP를 가져오려면 다음을 실행합니다.
$ kubectl get objectstorageadminnodes -n gpc-system
NAME SITE NAME MANAGEMENT IP READY AGE
ak-ac-objsadm01 ak-obj-site-1 172.22.210.160/24 True 12d
ak-ac-objsadm02 ak-obj-site-1 172.22.210.162/24 True 12d
스토리지 컴퓨팅 노드의 IP를 가져오려면 다음을 실행하세요.
$ kr get objectstoragestoragenodes -n gpc-system
NAME SITE NAME MANAGEMENT IP READY AGE
ak-ac-objs01 ak-obj-site-1 172.22.210.164/24 True 12d
ak-ac-objs02 ak-obj-site-1 172.22.210.168/24 True 12d
ak-ac-objs03 ak-obj-site-1 172.22.210.172/24 True 12d
기기에서 암호화가 사용 설정되어 있고 이 단계를 따른 후 노드가 재설정되었으며 이 단계에 따라 디스크 풀과 SSD 캐시가 삭제된 경우 각 노드에서 다음 단계를 실행하여 노드 암호화를 삭제합니다.
StorageGRID Appliance Installer UI로 이동합니다.
하드웨어 구성 > 노드 암호화로 이동합니다.
KMS 키 삭제 및 데이터 삭제를 클릭합니다.

삭제가 트리거되면 컨트롤러가 재부팅되며, 이 과정에는 약 15분이 소요될 수 있습니다.
6.5.6. StorageGRID 재설치
각 노드를 수동으로 다시 시작합니다.
노드의 직렬 콘솔을 열고 GRUB 부트로더 메뉴를 포착한 후 StorageGRID Appliance: Force StorageGRID reinstall을 선택합니다.

6.5.7. SANtricity 사용자 인증 정보 가져오기
SANtricity 컨트롤러 중 하나의 직렬 콘솔을 엽니다.
다음 사용자 인증 정보를 사용하여 로그인합니다.
- 사용자 이름:
spri - 비밀번호:
SPRIentry
- 사용자 이름:
로그인하면 다음과 같은 메뉴가 표시됩니다.
Service Interface Main Menu ============================== 1)Display IP Configuration 2)Change IP Configuration 3)Reset Storage Array Administrator Password 4)Display 7-segment LED codes 5)Disable SAML 6)Unlock remote admin account Q)Quit Menu Enter Selection: 3 Are you sure that you want to reset the Storage Array Password ? (Y/N): Y Storage Array Password reset successfulSANtricity 컨트롤러에 로그인하면 비밀번호 재설정을 사용할 수 있습니다.
6.6. NetApp ONTAP 기기 재설정
6.6.1. 기본 요건
NetApp ONTAP 기기를 재설정하기 전에 다음 사항을 읽어보세요.
이전에 하드웨어 보안 모듈 (HSM)이 사용 설정된 시스템의 경우 ONTAP 시스템을 재설정하기 전에 하드웨어 보안 모듈 사용 중지에 설명된 단계를 실행해야 합니다.
이 작업은 키, 백업, 백업 키, 시스템 로그를 비롯한 모든 CipherTrust Manager 데이터를 삭제하는 파괴적인 작업입니다.
모든 데이터와 백업 키의 유효한 CipherTrust Manager 백업이 있는지 확인합니다.
내장 HSM을 사용할 수 있는 경우 이 작업의 일부로 재설정되지 않습니다.
선택사항: 이 작업 후 신뢰할 수 있는 루트로 구성하기 위해 내장 HSM을 다시 초기화하는 것이 좋습니다.
원격 PIN 입력 기기 (PED)를 사용한 경우 완료 후 다시 연결해야 합니다.
이 작업은 최대 15분이 걸릴 수 있습니다. 전원 백업이 마련되어 있는지 확인합니다.
6.6.2. 하드웨어 보안 모듈 사용 중지
이전에 HSM을 사용하여 시스템을 사용 설정한 경우 ONTAP 시스템을 재설정하기 전에 다음 단계를 실행하세요. 이렇게 하지 않으면 디스크와 시스템이 잠길 수 있습니다. ONTAP 클러스터에서 다음 명령어를 실행합니다.
권한 수준을 고급으로 설정합니다.
set -privilege advanced디스크의 데이터 키와 사용 중인 연방 정보 처리 표준 (FIPS) 인증 키를 나열합니다.
storage encryption disk show시스템의 모든 디스크에 대해 노드의 데이터 및 FIPS 인증 키 ID를 기본 MSID 0x0으로 다시 설정합니다.
storage encryption disk modify -disk * -fips-key-id 0x0 storage encryption disk modify -disk * -data-key-id 0x0다음과 같이 작업이 성공했는지 확인합니다.
storage encryption disk show-statusDisks Begun == Disks Done를 받을 때까지show-status명령어를 반복합니다. 이 출력은 작업이 완료되었음을 의미합니다.cluster1:: storage encryption disk show-status FIPS Latest Start Execution Disks Disks Disks Node Support Request Timestamp Time (sec) Begun Done Successful ------- ------- -------- ------------------ ---------- ------ ------ ---------- cluster1 true modify 1/18/2022 15:29:38 3 14 5 5 1 entry was displayed.외부 키 관리자 구성을 삭제합니다.
HSM 연결이 설정된 경우 f 단계로 바로 이동합니다. HSM 연결이 다운된 경우 b 단계로 이동합니다.
cluster1::> security key-manager external show-statusset -priv diag을 실행하여diag모드로 이동합니다.다음 명령어를 실행하여 모든 볼륨 암호화 키를 표시합니다.
debug smdb table kmip_external_key_cache_mdb_v2 show개vserver-id속성을 수집합니다.모든 키 서버에 대해 다음 명령어를 실행하여 키를 삭제합니다(
debug smdb table kmip_external_key_cache_mdb_v2 delete -vserver-id <vserver-id> -key-id * -key-server <key-server endpoint>).ONTAP 사용자 인터페이스 (UI)를 사용하여 모든 볼륨을 삭제하거나 콘솔에서 볼륨을 수동으로 삭제합니다.
콘솔에서 삭제하는 경우 노드의 루트 볼륨을 무시해야 합니다. 이러한 파일의 이름은 일반적으로
vol0이며 노드 중 하나가vserver입니다. 노드가vserver인 볼륨은 일반적으로 삭제가 허용되지 않으며 삭제해서는 안 됩니다.이전 단계의
vol0이외의 다른 볼륨을 UI에서 삭제할 수 없는 경우 CLI를 사용해 보세요.cluster1::> vol offline -volume volume_to_be_deleted -vserver vserve-id cluster1::> vol delete -volume volume_to_be_deleted -vserver vserver-idUI에서 스토리지 클러스터에 로그인하려면 다음 명령어로 비밀번호에서 사용자 이름과 비밀번호를 가져옵니다. 이때 CELL_ID을 설치 중인 셀의 고유 ID로 바꿉니다.
kubectl get secret -n gpc-system ontap-CELL_ID-stge-clus-01-credential -o jsonpath='{.data.netapp_username}' | base64 --decode kubectl get secret -n gpc-system ontap-CELL_ID-stge-clus-01-credential -o jsonpath='{.data.netapp_password}' | base64 --decode그런 다음 볼륨으로 이동하여 모두 선택하고 삭제를 클릭합니다. 각 페이지에 대해 여러 번 반복해야 합니다. 참고: 볼륨 삭제 실패 오류는 무시해도 됩니다. 자세한 내용은 NetApp 기술 자료를 참고하세요.
ag-stge-clus-01::*> vol show Vserver Volume Aggregate State Type Size Available Used% --------- ------------ ------------ ---------- ---- ---------- ---------- ----- ag-ad-stge01-01 vol0 aggr0_ag_ad_stge01_01 online RW 151.3GB 84.97GB 40% ag-ad-stge01-02 vol0 aggr0_ag_ad_stge01_02 online RW 151.3GB 86.69GB 39% ag-ad-stge02-01 vol0 aggr0_ag_ad_stge02_01 online RW 151.3GB 83.62GB 41% ag-ad-stge02-02 vol0 aggr0_ag_ad_stge02_02 online RW 151.3GB 85.97GB 40% ag-ad-stge03-01 vol0 aggr0_ag_ad_stge03_01 online RW 151.3GB 89.19GB 37% ag-ad-stge03-02 vol0 aggr0_ag_ad_stge03_02 online RW 151.3GB 88.74GB 38%
모든 볼륨을 삭제한 후 다음 명령어를 실행하여 복구 대기열을 삭제합니다(
recovery-queue purge-all -vserver <vserver>).다음 명령어를 실행하여 외부 키 관리자
clusterl::> security key-manager external remove-servers -vserver <CLUSTER_NAME> -key-servers <IP1:PORT,IP2:PORT,...>을 삭제합니다. 이 단계를 완료한 후 다음 오류가 표시될 수 있습니다.Error: command failed: The key server at "172.22.112.192" contains authentication keys that are currently in use and not available from any other configured key server.이 오류는 남아 있는 키가 있음을 나타냅니다. 나머지 키를 삭제하려면 다음 단계를 따르세요.
나머지 키를 나열하려면 다음 명령어를 실행합니다.
security key-manager key query출력은 다음 예시와 비슷합니다.
Node: ag-ad-stge01-01 Vserver: ag-stge-clus-01 Key Manager: 172.22.112.192:5696 Key Manager Type: KMIP Key Manager Policy: - Key Tag Key Type Encryption Restored ------------------------------------ -------- ------------ -------- ag-ad-stge01-01 NSE-AK AES-256 true Key ID: 00000000000000000200000000000100454007f1854b3e3f5c90756bc5cfa6cc0000000000000000이전 출력에서 키 ID 값을 기록해 둡니다.
security key-manager key delete -key-id명령어 + 키 ID 값을 사용하여 나머지 키를 삭제합니다.security key-manager key delete -key-id 00000000000000000200000000000100454007f1854b3e3f5c90756bc5cfa6cc0000000000000000i 및 j 단계를 반복하여 나머지 키를 삭제합니다. 완료되면 출력은 다음 예와 비슷합니다.
ag-stge-clus-01::*> security key-manager key query No matching keys found.6.6.3. ONTAP 노드 재설정
ONTAP 노드를 재설정하려면 다음 단계를 따르세요.
시스템 프롬프트에서
system node reboot명령어를 사용하여 부팅 메뉴에 액세스하도록 노드를 재부팅합니다. 참고: 시스템 재부팅 경고는 무시해도 됩니다.예:
ag-stge-clus-01::> system reboot -node ag-ad-stge03-02 Warning: Are you sure you want to reboot node "ag-ad-stge03-02"? {y|n}: y Error: Could not migrate LIFs away from node: Failed to migrate one or more LIFs away from node "ag-ad-stge03-02". Use the "network interface show -curr-node ag-ad-stge03-02" command to identify LIFs that could not be migrated off that node. Use the "network interface migrate" command to manually migrate the LIFs off the node. Reissue the command with "-skip-lif-migration-before-reboot" to skip the migration and continue with takeover. ag-stge-clus-01::> system reboot -node ag-ad-stge03-02 -skip-lif-migration-before-reboot Warning: Are you sure you want to reboot node "ag-ad-stge03-02"? {y|n}: y Connection to 172.22.115.134 closed.ag-stge-clus-01::> system reboot -node ag-ad-stge02-02 Error: command failed: Taking node "ag-ad-stge02-02" out of service might result in a data service failure and client disruption for the entire cluster. If possible, bring an additional node online to improve the resiliency of the cluster and to ensure continuity of service. Verify the health of the node using the "cluster show" command, then try the command again, or provide "-ignore-quorum-warnings" to bypass this check. ag-stge-clus-01::> system reboot -node ag-ad-stge02-02 -ignore-quorum-warnings Warning: Are you sure you want to reboot node "ag-ad-stge02-02"? {y|n}: y Error: Could not migrate LIFs away from node: Failed to migrate one or more LIFs away from node "ag-ad-stge02-02". Use the "network interface show -curr-node ag-ad-stge02-02" command to identify LIFs that could not be migrated off that node. Use the "network interface migrate" command to manually migrate the LIFs off the node. Reissue the command with "-skip-lif-migration-before-reboot" to skip the migration and continue with takeover. ag-stge-clus-01::> system reboot -node ag-ad-stge02-02 -ignore-quorum-warnings -skip-lif-migration-before-reboot Warning: Are you sure you want to reboot node "ag-ad-stge02-02"? {y|n}: y Connection to 172.22.115.132 closed.LOADER메뉴에 있는 경우boot_ontap을 입력하여 재부팅을 진행합니다. 재부팅 프로세스 중에 메시지가 표시되면Ctrl-C를 눌러 부팅 메뉴를 표시합니다. 노드에 부팅 메뉴의 다음 옵션이 표시됩니다.(1) Normal Boot. (2) Boot without /etc/rc. (3) Change password. (4) Clean configuration and initialize all disks. (5) Maintenance mode boot. (6) Update flash from backup config. (7) Install new software first. (8) Reboot node. (9) Configure Advanced Drive Partitioning Selection (1-9)?(9) Configure Advanced Drive Partitioning옵션을 선택합니다. 노드에 다음 옵션이 표시됩니다.* Advanced Drive Partitioning Boot Menu Options * ************************************************* (9a) Destroy aggregates, unpartition all disks and remove their ownership information. (9b) Clean configuration and initialize node with partitioned disks. (9c) Clean configuration and initialize node with whole disks. (9d) Reboot the node. (9e) Return to main boot menu. (9f) Remove disk ownership.종료를 요청하는 메시지가 표시되면 옵션
9a을 선택하고no을 입력합니다. 노드에는9a후에 다음 옵션이 다시 표시됩니다.(9a) Unpartition all disks and remove their ownership information. (9b) Clean configuration and initialize node with partitioned disks. (9c) Clean configuration and initialize node with whole disks. (9d) Reboot the node. (9e) Return to main boot menu. ```더 진행하기 전에 클러스터에 있는 모든 스토리지 노드에 대해
9a작업을 실행합니다.각 노드에 대해 옵션
9b를 실행하고yes를 입력하여 확인합니다.(9a) Unpartition all disks and remove their ownership information. (9b) Clean configuration and initialize node with partitioned disks. (9c) Clean configuration and initialize node with whole disks. (9d) Reboot the node. (9e) Return to main boot menu.HA 쌍이 있으면 다음 메시지가 표시됩니다. 클러스터의 모든 노드가 9a를 완료했는지 확인한 후 노드에서 9b 단계를 실행합니다.
Selection (9a-9f)?: 9b 9b Option (9a) MUST BE COMPLETED on BOTH nodes in an HA pair (and DR/DR-AUX partner nodes if applicable) prior to starting option (9b). Has option (9a) been completed on all the nodes (yes/no)? yes yes
Welcome to the cluster setup wizard메시지가 표시되면 재설정이 완료된 것입니다.
6.7. Thales k570 재설정
Thales k570을 재설정하려면 Ciphertrust Manager를 초기화한 후 Luna HSM 자체를 재설정합니다.
6.7.1. 시스템 초기화
HSM 사용자 인증 정보의 임시 작업 디렉터리를 만듭니다.
TMPPWDDIR=/run/user/$(id --user)/hsm mkdir -p $TMPPWDDIR chmod 700 $TMPPWDDIRHSM에 대한 SSH 연결을 설정합니다.
export ADMIN_SSH_SECRET_NAME=`kubectl get secrets -n hsm-system -o json | jq .items[].metadata.name | tr -d '"' | grep "ssh"` kubectl get secret $ADMIN_SSH_SECRET_NAME \ --namespace=hsm-system \ --output jsonpath='{.data.ssh-privatekey}' \ | base64 --decode > $TMPPWDDIR/hsm-ssh-privatekey chmod 0600 $TMPPWDDIR/hsm-ssh-privatekey ssh -i $TMPPWDDIR/hsm-ssh-privatekey ksadmin@$HSM_MGMT_IP이렇게 할 수 없는 경우 컴퓨터에서 콘솔 포트로 직렬 케이블을 사용하여 연결합니다. 다른 탭에서 다음 명령어를 실행하여
ksadmin비밀번호를 가져옵니다.export KSADMIN_SECRET_NAME=`kubectl get secrets -n hsm-system -o json | jq .items[]metadata.name | tr -d '"' | grep "ksadmin"` kubectl get secret $KSADMIN_SECRET_NAME \ --namespace=hsm-system \ --output jsonpath='{.data.password}' \ | base64 --decode직렬에 로그인하면 로그인 메시지가 표시됩니다. 사용자 이름을
ksadmin로 입력하고 이전 명령어의 비밀번호를 붙여넣습니다.factory-reset명령어를 실행하기 전에 다음을 수행하세요.이 시간 동안 시스템을 다시 시작하지 마세요. 다시 연결에는 여러 시스템 재부팅이 포함되며 실행취소할 수 없습니다.
전원 백업이 마련되어 있는지 확인합니다.
다음 명령어를 실행하여 초기화를 실행합니다.
sudo /opt/keysecure/ks_reset_to_factory.sh초기화 프로세스를 완료하는 데 약 10분이 소요됩니다.
6.7.2. Luna HSM 재설정
시스템 초기화는 HSM에서 신뢰할 수 있는 루트를 삭제하지 않습니다. 다음 명령어를 실행하여 Luna HSM을 재설정합니다.
CipherTrust Manager 호스트 내에서 SSH 또는 직렬 콘솔을 통해 다음 명령어를 실행합니다.
/usr/safenet/lunaclient/bin/lunacmlunacm:> hsm factoryReset부트스트래퍼에서 임시 작업 디렉터리를 삭제합니다.
rm $TMPPWDDIR
6.8. 방화벽 재설정
방화벽을 초기화하는 방법은 방화벽 초기화를 참고하세요.
6.9. Cisco 스위치 재설정
다음 단계를 따라 Cisco 스위치를 재설정하세요. 이 안내는 stgesw와 같은 스토리지 전환에도 적용됩니다.
- 스위치에 로그인합니다.
스위치를 쓰고 지우고 다시 로드합니다.
write erase reload이전에 스위치를 구성했고
cellcfg디렉터리를 사용할 수 있는 경우 사전 비행 정리를 대신 따를 수 있습니다.스위치가 전원 켜기 자동 프로비저닝 (POAP) 상태인지 확인합니다.
스위치가 올바르게 재설정되면 콘솔 서버를 사용하여 스위치에 연결할 때 다음 메시지가 표시됩니다.
Abort Power On Auto Provisioning [yes - continue with normal setup, skip - bypass password and basic configuration, no - continue with Power On Auto Provisioning] (yes/skip/no)[no]:
6.10. 재설정 절차에 관한 추가 리소스
재설정 프로세스에 대한 자세한 내용은 다음 리소스를 참고하세요.
https://docs.netapp.com/us-en/ontap/system-admin/manage-node-boot-menu-task.htmlhttps://docs.netapp.com/us-en/ontap/encryption-at-rest/return-seds-unprotected-mode-task.html