2. 2
AGENDA
•
Bare Metal Provision Domain
•
Why Provision Bare Metal(BM)
•
Provision Methods & Scenarios
•
Key Technologies for BM Provision
•
PXE ROM & NBP
•
IPMI Functions
•
IPMI Block Diagram
•
IPMI + PXE Provising Workflow
•
Ironic
•
About Ironic
•
Architecture
•
Conceptual
•
Logical
•
Framework
•
Components
•
BM Provision Sequence Diagram
•
Data Model
•
Images used by Ironic
•
Commands
•
How to use Ironic
•
TripleO
3. 3
Why Provision Bare Metal(BM)
•
Database/Hadoop hosting (some
databases run poorly in a hypervisor)
•
Single tenant, dedicated hardware for
performance, security, dependability and
other regulatory requirements
•
Computing tasks that require access to
hardware devices which can’t be
virtualized
•
High-performance computing(HPC) clusters, physical compute nodes
•
Or, rapidly deploying a cloud infrastructure self, TripleO or others
•
Cloud scaling out
•
X86_64, ARM, TILE-Gx16/36/64/100 systems
•
SoftLayer / Racespace Cloud supports bare-metal as service
5. 5
Key Technologies for BM Provision
•
PXE Preboot Execution Environment (PXE) is part of the Wired for Management (WfM) specification
developed by Intel and Microsoft. Booting computers via a network.
•
NBP Network Bootstrap Program (NBP) is equivalent to GRUB (GRand Unified Bootloader) or LILO
(LInux LOader) - loaders which are traditionally used in local booting. Like the boot program in a hard
drive environment, the NBP is responsible for loading the OS kernel into memory so that the OS can be
bootstrapped over a network.
•
IPMI Intelligent Platform Management Interface (IPMI) is a standardized computer system interface
used by system administrators for out-of-band management of computer systems and monitoring of
their operation.
•
DHCP Using PXE, the BIOS uses DHCP to obtain an IP address for the network interface and to
locate the server that stores the network bootstrap program (NBP).
•
TFTP Trivial File Transfer Protocol (TFTP) is a simple file transfer protocol that is generally used for
automated transfer of configuration or boot files between machines in a local environment. In a PXE
environment, TFTP is used to download NBP over the network using information from the DHCP
server.
•
iSCSI Internet Small Computer System Interface, uses this to 'dd' the image to target machnie
local disk
6. 6
PXE ROM & NBP (bootloader,pxelinux.0)
PXE ROM Chip
8. 8
IPMI Functions
•
power Shortcut to chassis power commands
•
chassis bootdev Set the boot device
•
sensor Print detailed sensor information
•
sol Configure and connect IPMIv2.0 Serial-over-LAN
•
...
11. 11
“Ironic is an Incubated OpenStack project which aims to
provision bare metal (as opposed to virtual) machines by
leveraging common technologies such as PXE boot and IPMI
to cover a wide range of hardware, while supporting
pluggable drivers to allow vendor-specific functionality to be
added.”
http://docs.openstack.org/developer/ironic/
About Ironic
15. 15
Ironic Components
•
Ironic-api
•
handles the remote api requests
•
Ironic-conductor
•
talk with physical machines
•
Nova compute driver
•
Implements the nova virt.ComputeDriver.
•
Direct the calls to Ironic
•
CLI client
•
Ironic deployment ramdisk agent
•
Built by diskimage-builder
•
Deploy by PXE, talk with Ironic-
conductor
RAMDISK Agent - https://github.com/openstack/diskimage-builder/tree/master/elements/deploy-ironic
16. 16
Juno Teeth Agent
•
In Juno release, a new ramdisk agent will be introduced to Ironic by
RackSapce. (teeth agent) The new name is Ironic Python Agent
•
Supports:
•
Partition disks
•
Erase disks
•
Install bootloaders
•
Install an OS image
•
Update firmware
•
Configure RAID and more....
•
A new DeployInterface driver will be written to communicate with the new
Teeth agent.
19. 19
Images used by Ironic
●
NBP
– Ironic.conf pxe_bootfile_name
– default pxelinux.0
●
Ironic Deployment Agent
– bm-deploy-kernel / bm-deploy-ramdisk
– BM flavor's extra_specs data –
baremetal:deploy_kernel_id/baremetal:deploy_ramdisk_id
●
User Image – to be deployed to bm
– user-image/
– user-image-vmlinuz
– user-image-initrd
– Images' kernel_id/ramdisk_id ext props
•
20. 20
Ironic Commands
•
node-create - Create a new node.
•
node-delete - Delete a node.
•
node-get-console - return the connection information about the console.
•
node-list - list nodes.
•
node-set-console-mode - Enable or disable the console access.
•
node-set-power-state - Power the node on or off.
•
node-set-provision-state - Provision or tear down a node.
•
node-show - Show a node.
•
node-update - Upate a node.
•
node-validate - Validate the node driver interfaces.
21. 21
Ironic Commands
•
port-create - Create a new port.
•
port-delete - Delete a port.
•
port-list - List ports.
•
port-show - Show a port.
•
port-update - Update a port.
•
chassis-create - Create a new chassis.
•
chassis-delete - Delete a chassis.
•
chassis-list - List chassis.
•
chassis-node-list - List the nodes contained in the chassis.
•
chassis-show - Show a chassis.
•
chassis-update - Update a chassis.
•
driver-list - List drivers.
•
driver-show - Show a driver.
22. 22
How to use Ironic
•
Install Ironic - Try with devstack or TripleO's Devtest, it supports Ironic for long time
– http://docs.openstack.org/developer/ironic/dev/dev-quickstart.html#deploying-ironic-with-devstack
– https://wiki.openstack.org/wiki/Tuskar/Devtest
•
Setup the compute node's nova.conf
•
compute_driver = ironic.nova.virt.ironic.driver.IronicDriver
•
scheduler_host_manager = ironic.nova.scheduler.ironic_host_manager.IronicHostManager
•
Setup tftp folder and prepare pxe boot loader file
•
# cp pxelinux.0 /YOUR_TFTP_FOLDER/
•
Prepare the baremetal flavor
•
# nova flavor-create <name> <id> <ram> <disk> <vcpus>
•
# nova flavor-key baremetal set "cpu_arch"="$ARCH" "baremetal:deploy_kernel_id"="$deploy_kernel_id"
"baremetal:deploy_ramdisk_id"="$deploy_ramdisk_id"
•
Register these nodes with correct drivers
•
# ironic node-create driver=pxe_ipmitool
•
Register the ports information
•
# ironic port-create -a aa:bb:cc:dd:ee:ff -n 76305cdf-a30a-453e-bc92-b3f869a27fd8
•
Nova boot to kick off the baremetal provision
•
Check node's provision_state/power_state value
•
# ironic node-show 76305cdf-a30a-453e-bc92-b3f869a27fd8
23. 23
TripleO
•
TripleO = OpenStack on OpenStack
•
INFO: May 2014 at the Atlanta Summit: both RedHat's (InStack) and HP's
(Helion) OpenStack distributions are now based on TripleO