공식 문서: https://docs.openstack.org/ironic/latest/user/index.html
ironic-conductor
가 실행되는 베어메탈 서비스 노드에서 tftp-server
, ipmi
, syslinux
등의 종속 패키지를 구성해야 합니다.extra_specs
(예: cpu_arch
)을 사용해 대상 물리 노드를 매칭합니다.spawn
작업을 생성합니다. 이 작업은 Nova 컴퓨트의 virt 계층에서 driver.spawn
을 호출합니다. spawn 프로세스 동안 virt 드라이버는 다음 작업을 수행합니다: active
로 업데이트됩니다.iSCSI 배포 인터페이스를 사용하는 경우, 배포 램디스크는 노드의 하드 드라이브를 iSCSI 공유로 공개합니다. 그런 다음, ironic-conductor가 이미지를 이 공유로 복사합니다. 이 인터페이스는 기본적으로 사용됩니다.
openstack baremetal node create --driver ipmi --deploy-interface iscsi openstack baremetal node set <NODE> --deploy-interface iscsi
extra_spec
속성에 포함됩니다(예: cpu_arch
, baremetal:deploy_kernel_id
, baremetal:deploy_ramdisk_id
).spawn
합니다. 이 작업은 Ironic API를 호출하고 매개변수를 전달하여 실제로 실행되며, Ironic은 이 작업에 필요한 하드웨어 자원 정보를 데이터베이스에 지속적으로 저장합니다.Direct 배포 인터페이스를 사용할 경우, 배포 램디스크는 이미지를 HTTP 위치에서 가져옵니다. 이 HTTP 위치는 객체 저장소(Swift 또는 RadosGW)의 임시 URL일 수도 있고, 사용자가 제공한 HTTP URL일 수도 있습니다. 배포 램디스크는 이후 이미지를 대상 디스크로 복사합니다.
openstack baremetal node create --driver ipmi --deploy-interface direct openstack baremetal node set <NODE> --deploy-interface direct
lookup
을 통해 Ironic Conductor에서 해당하는 ironic_node_uuid
를 가져옵니다.Heartbeat
를 통해 Ironic과 통신하며, 이 과정에서 배포 프로세스가 시작되고, Ironic Conductor가 prepare_image
명령을 IPA로 전송합니다. 그러면 IPA는 직접(Direct)으로 사용자 이미지를 다운로드하여 로컬 디스크에 주입합니다. 이미지 쓰기는 시간이 오래 걸리는 작업으로, 보통 300GB 크기의 이미지를 쓰는 데 약 10분 정도 걸립니다.ironic-conductor
는 Heartbeat
메시지를 받은 후(이 메시지는 ironic-api
로부터 RPC로 전달됩니다), 현재 상태에 따라 적절한 처리를 진행합니다. 첫 번째 Heartbeat
메시지는 ironic-conductor
가 IPA로 prepare_image
명령을 내리게 하며, 이후의 Heartbeat
메시지는 ironic-conductor
가 IPA의 명령 상태를 조회하도록 하여 prepare_image
등의 명령이 아직 실행 중인지 확인합니다. 명령 상태에서 작업이 완료되었다고 나타나면, 다음 배포 단계로 진행하여 물리 서버의 부팅 장치를 디스크로 설정하고, 서버를 종료한 후 네트워크를 전환하고, 다시 서버를 부팅합니다. 이 과정을 통해 배포가 완료됩니다.