DMTF Redfish API를 사용하여 Power Systems 서버 관리
FSP 기반 Power Systems™ 서버는 DMTF Redfish API를 사용하여 관리할 수 있습니다.
개요
Redfish는 플랫폼 관리에 사용되는 REST API이며, Distributed Management Task Force, Inc.(http://www.dmtf.org/standards/redfish)에서 표준화합니다.
Redfish를 사용하면 안전한 최신 프로그래밍 패러다임을 사용하여 개발된 클라이언트 스크립트를 통해 플랫폼 관리 태스크를 제어할 수 있습니다.
Redfish API를 사용하면 전력 이용률을 향상시키기 위해 전환 가능한 매개변수를 프로비저닝할 수 있습니다.
IBM® Power Systems 서버에서는 시스템 관리를 위해 DMTF Redfish API(DSP0266, 버전 1.0.3, 2016년 6월 17일에 공개됨)를 지원합니다.
JSON 형식의 Redfish 스키마 파일은 DMTF(http://redfish.dmtf.org/schemas/v1/)에서 발행하고 펌웨어 이미지로 패키징됩니다.
칩으로 배포되는 스키마 파일을 사용하면 광역 네트워크(WAN) 연결이 없는 배치에서 API가 제대로 작동할 수 있습니다.
펌웨어 레벨
Redfish API는 FSP(Flexible Service Processor) 펌웨어 레벨 FW860.20 이상에서 지원됩니다.
Power Systems 서버에서 Redfish의 통신 필수 소프트웨어
- 서버 펌웨어 레벨을 FW860.20으로 업그레이드하십시오.
- FSP의 IP 주소를 확인하십시오(예: 이 정보는 연결된 HMC에서 판독할 수 있음).
- HMC를 통해 FSP로의 SSH 터널을 설정하십시오.
- Redfish 서비스와 통신하기 위한 매개변수로 요청 본문과 URI(Uniform Resource Indicator) 메소드를 사용하여 cURL(https://curl.haxx.se/)을 설치하고 실행하십시오.
- 클라이언트 시스템에서 Python을 설치하십시오(일반적으로 Linux 호스트).
- 선택적으로 DMTF Redfishtool(https://github.com/DMTF/Redfishtool)을 설치하고 실행하십시오.
SSH 터널 설정
Argus$ ssh -L 9000:9.3.19.141:443 hscpe@9.126.138.108
hscpe@9.126.138.108's password:
Last login: Wed Feb 08 11:29:20 2017 from 9.193.126.186
SSH 터널을 통해 명령을 스크립팅하는 데 대한 추가 정보는 스마트한 방식으로 쉘 스크립트에서 SSH 터널 열기 및 닫기를 참조하십시오.
Redfish 요청을 FSP의 IP 주소에 보내지 말고 이 주제에 설명된 대로 SSH 터널을 설정한 다음 클라이언트(IP 주소 9.193.126.186)에서 맵핑된 포트(9000)에 요청을 보내십시오. 이 예에서 Redfish 요청의 URI 도메인은 9.193.126.186:9000이어야 합니다.
Redfish 서비스와 상호작용
- 인증된 로그인 세션을 작성하십시오(/redfish/v1/SessionService/Sessions 자원에서 POST 메소드).
- 다음 상세 정보를 추출하여 저장하십시오.
- 인증 토큰(응답의 X-Auth-Token 헤더에 있음)
- 세션 URI(응답의 Location 헤더에 있음)
- 자원의 특성을 읽으려면 자원 URI에 X-Auth-Token을 사용하여 GET 요청을 보내십시오.
- 자원의 특성을 설정하려면 JSON 본문으로 인코딩 값, 유형, 특성 이름 및 자원 URI의 X-Auth-Token 헤더로 PATCH 요청을 보내십시오.
- JSON 본문을 포함하는 Redfish 서비스에서 응답을 추출하여 구문 분석하십시오.
Redfish 서비스 홈 페이지 URI
Redfish 서비스 홈 페이지 URI(서비스 ROOT라고도 함)는 다음 URI를 검색하여 액세스할 수 있습니다. https://<ip:port>/redfish/v1. 이 URI의 응답은 하이퍼미디어 API 패러다임을 사용하여 Redfish 서비스 조회를 가능하게 하는 상위 레벨 사이트 맵입니다.
Redfish 서비스에서 반환한 데이터 해석
데이터의 형식과 구조는 스키마 파일에 정의되어 있습니다. 스키마 파일은 Redfish 서비스에서 보낸 데이터를 설명하는 JSON 파일입니다. 스키마 파일을 사용하여 Redfish 서비스에서 보낸 데이터를 파악하고 Redfish 서비스에서 보낸 응답의 유효성을 검증할 수 있습니다.
스키마 파일의 위치
DMTF에서 Redfish에서 사용하는 표준 데이터의 스키마 파일을 공개합니다.
JSON 형식의 Redfish 스키마 파일은 DMTF 스키마 저장소(http://redfish.dmtf.org/schemas/v1/)에서 호스팅합니다.
IBM에서는 Redfish 스키마의 주문자 상표 부착 생산자(OEM) 확장기능의 스키마 파일을 공개합니다(예: 전력 이용률을 향상시키기 위한 EnergyScale™ 확장기능).
IBM에서 공개하는 OEM 스키마 파일은 스키마의 네임스페이스에서 파일 이름 접두부 IBMEnterprise로 식별합니다. 예: IBMEnterpriseEnergyScale.v1_0_0.json.
IBM에서 공개하는 OEM 스키마 파일은 IBM Schema 저장소(http://public.dhe.ibm.com/systems/power/redfish/schemas/v1/)에서 다운로드할 수 있습니다.
Redfish 서비스에서 반환한 응답(JSON 본문) 유효성 검증
Redfish 서비스에서 반환한 응답에는 @odata.type 특성이 포함됩니다. 응답의 @odata.type 특성 값은 *#<namespace>.<type> 형식의 문자열입니다. 여기서 <namespace>의 형식은 <name>.<ver>입니다.
네임스페이스에 IBMEnterprise 접두부가 포함된 경우 네임스페이스는 IBM에서 정의한 OEM 유형이고, 해당 스키마 파일은 IBM 스키마 저장소에서 다운로드할 수 있습니다.
네임스페이스에 IBMEnterprise 접두부가 포함되지 않은 경우 네임스페이스는 DMTF에서 정의한 표준 유형이고, 해당 스키마 파일은 DMTF 스키마 저장소에서 다운로드할 수 있습니다.
Redfish 서비스에서 지원하는 자원
- 서비스
- 서비스 루트: https://<ip:port>/redfish/v1
- 세션 서비스: https://<ip:port>/redfish/v1/SessionService
- 세션 콜렉션: https://<ip:port>/redfish/v1/SessionService/Sessions
- 세션 자원: https://<ip:port>/redfish/v1/SessionService/Sessions/<id>
- 시스템 콜렉션: https://<ip:port>/redfish/v1/Systems
- 시스템 자원: https://<ip:port>/redfish/v1/Systems/<server-id>
- EnergyScale :
https://<ip:port>/redfish/v1/Systems/<server-id>/EnergyScale참고: 각 항목에 대한 설명은 다음과 같습니다.
- ip는 FSP의 IP 주소이거나 SSH 터널의 localhost IP 주소입니다.
- port는 기본 HTTPS 포트(443) 또는 SSH 터널의 로컬 포트입니다.
- id는 세션 ID입니다.
- server-id는 Redfish 서비스가 반환한 서버 이름입니다. 서버 이름은 시스템 콜렉션의 요청에 대한 응답에 포함된 @odata.id 매개변수 값의 일부입니다. 다음 예에서 서버 이름은 @odata.id 매개변수의 Server-8408-E8E-1067A9V입니다. "@odata.id": "/redfish/v1/Systems/Server-8408-E8E-1067A9V"
- chassis-id는 CEC 격납장치의 일련 번호입니다.
- 섀시
- 섀시 콜렉션: https://<ip:port>/redfish/v1/Chassis
- 섀시 자원: https://<ip:port>/redfish/v1/Chassis/<chassis-id>
- 열 자원:
https://<ip:port>/redfish/v1/Chassis/<chassis-id>/Thermal참고: 팬 상태는 열 자원 아래에서 사용 가능합니다.
- 전력 자원:
https://<ip:port>/redfish/v1/Chassis/<chassis-id>/Power참고: 전원 공급 장치 상태는 전원 자원 아래에서 사용 가능합니다.
참고: 각 항목에 대한 설명은 다음과 같습니다.- ip는 FSP의 IP 주소이거나 SSH 터널의 localhost IP 주소입니다.
- port는 기본 HTTPS 포트(443) 또는 SSH 터널의 로컬 포트입니다.
- chassis-id는 CEC 격납장치의 일련 번호입니다.
- 프로세서
- 프로세서 콜렉션: https://<ip:port>/redfish/v1/Systems/<server-id>/Processors
- 프로세서 자원: https://<ip:port>/redfish/v1/Systems/<server-id>/Processors/<proc-id>
- 핵심 자원:
https://<ip:port>/redfish/v1/Systems/<server-id>/Processors/<proc-id>/Cores/<core-id>참고: 각 항목에 대한 설명은 다음과 같습니다.
- ip는 FSP의 IP 주소이거나 SSH 터널의 localhost IP 주소입니다.
- port는 기본 HTTPS 포트(443) 또는 SSH 터널의 로컬 포트입니다.
- server-id는 Redfish 서비스가 반환한 서버 이름입니다. 서버 이름은 시스템 콜렉션의 요청에 대한 응답에 포함된 @odata.id 매개변수 값의 일부입니다. 다음 예에서 서버 이름은 @odata.id 매개변수의 Server-8408-E8E-1067A9V입니다. "@odata.id": "/redfish/v1/Systems/Server-8408-E8E-1067A9V"
- proc-id는 프로세서의 고유 ID입니다.
- core-id는 특정 프로세서에 있는 코어의 고유 ID입니다.
- 관리자 콜렉션: https://<ip:port>/redfish/v1/Managers
- FSP 자원: https://<ip:port>/redfish/v1/Managers/BMC
- FSP eth0 인터페이스: https://<ip:port>/redfish/v1/Managers/BMC/EthernetInterfaces/ETH_0
cURL 명령을 사용하여 Redfish 서비스에서 일반 시스템 관리 기능에 액세스
- 로그인하여 Redfish 서비스와의 보안 연결을 작성하려면 다음 명령을 실행하십시오.
curl -X POST -D headers.txt https://<ip:port>/redfish/v1/SessionService/Sessions -d ‘{"UserName":"admin", "Password":"admin"}’
여기서 ip는 FSP의 IP 주소이고 port는 ASMI의 기본 포트입니다. 사용자가 로그인하고 나면 인증이 필요할 수 있는 요청을 위해 X-Auth-Token 헤더의 값을 저장해야 하고, 값 위치 헤더를 저장해야 합니다. 왜냐하면 이 헤더가 세션의 고유 URI이고, 세션에서 로그오프하는 데 이러한 값이 필요하기 때문입니다.
- 서비스 루트 문서를 읽으려면 다음 명령을 실행하십시오.
curl -k -H "X-Auth-Token: <authtoken>" -X GET https://<ip:port>/redfish/v1/
- 이 인스턴스에서 시스템 ID의 콜렉션을 읽으려면 다음 명령을 실행하십시오.
curl -k -H "X-Auth-Token: <authtoken>" -X GET https://<ip:port>/redfish/v1/Systems
- 시스템 정보를 읽으려면 다음 명령을 실행하십시오.
curl -k -H "X-Auth-Token: <authtoken>" -X GET https://<ip:port>/redfish/v1/Systems/<system-id>
여기서 system-id는 시스템의 머신 유형 및 모델(MTM)과 일련 번호입니다. system-id의 형식은 Server-MTM-SerialNumber입니다. system-id를 가져오려면 시스템 콜렉션 자원에서 GET 조작을 수행하십시오.
- 노드 또는 섀시에서 확장된 용량 I/O에 사용된 슬롯 수를 수정하려면
다음 명령을 실행하십시오.
curl -k -H "X-Auth-Token: <authtoken>" -X PATCH https://<ip:port>/redfish/v1/Chassis/ <chassis-id>; -d '{"Oem" : {"IBMEnterpriseChassis" : {"HugeDynamicDMAWindowSlotCount" : "9"}}}'
- 유휴 상태에 있는 CPU의 절전 매개변수를 수정하려면 다음 명령을 실행하십시오.
curl -k -H "X-Auth-Token: <authtoken>" -X PATCH https://<ip>/redfish/v1/Systems/ <system-id>/EnergyScale -d '{ "CPUIdlePowerSaver": { "DelayTimeEnter": 150, "DelayTimeExit": 5, "State": "Enabled", "UtilizationThresholdEnter": 22, "UtilizationThresholdExit": 30 }}'
여기서 chassis-id는 CEC 격납장치의 일련 번호입니다. chassis-id를 가져오려면 섀시 콜렉션 자원에서 GET 조작을 수행하십시오.
- 시스템의 전원을 켜려면 다음 명령을 실행하십시오.
curl -k -H "X-Auth-Token: <authtoken>" -X POST https://<ip:port>/redfish/v1/Systems/ <system-id>/Actions/Reset -d '{"ResetType":"On"}'
- 시스템의 전원을 끄려면 다음 명령을 실행하십시오.
curl -k -H "X-Auth-Token: <authtoken>" -X POST https://<ip:port>/redfish/v1/Systems/ <system -id>/Actions/Reset -d '{"ResetType":"ForceOff"}'
- 로그오프하거나 Redfish 세션을 종료하려면 다음 명령을 실행하십시오.
curl -k -H "X-Auth-Token: <authtoken>" -X DELETE https://<ip:port>/redfish/v1/SessionService/ Sessions/<id>;
EnergyScale 스키마
EnergyScale 스키마는 IBM Power Systems 서버에서 전력 이용률을 향상시키기 위해 전환 가능한 매개변수를 구성할 수 있게 하는 Redfish 스키마의 OEM 확장입니다.