Atom feed of this document
 

 Bare Metal Driver

The baremetal driver is a hypervisor driver for Openstack Nova Compute. Within the Openstack framework, it has the same role as the drivers for other hypervisors (libvirt, xen, etc), and yet it is presently unique in that the hardware is not virtualized - there is no hypervisor between the tenants and the physical hardware. It exposes hardware via Openstack's API, using pluggable sub-drivers to deliver machine imaging (PXE) and power control (IPMI). With this, provisioning and management of physical hardware is accomplished using common cloud APIs and tools, such as Heat or salt-cloud. However, due to this unique situation, using the baremetal driver requires some additional preparation of its environment, the details of which are beyond the scope of this guide.

[Note]Note

Some OpenStack Compute features are not implemented by the baremetal hypervisor driver. See the hypervisor support matrix for details.

For the Baremetal driver to be loaded and function properly, ensure that the following options are set in /etc/nova/nova.conf on your nova-compute hosts.

            [default]
            compute_driver=nova.virt.baremetal.driver.BareMetalDriver
            firewall_driver = nova.virt.firewall.NoopFirewallDriver
            scheduler_host_manager=nova.scheduler.baremetal_host_manager.BaremetalHostManager
            ram_allocation_ratio=1.0
            reserved_host_memory_mb=0
        

There are many configuration options specific to the Baremetal driver. Also, some additional steps will be required, such as building the baremetal deploy ramdisk. See the main wiki page for details and implementation suggestions.

Table 9.6. Description of configuration options for baremetal
Configuration option=Default value (Type) Description
db_backend=sqlalchemy (StrOpt)The backend to use for db
db_backend=sqlalchemy (StrOpt)The backend to use for bare-metal database
deploy_kernel=None (StrOpt)Default kernel image ID used in deployment phase
deploy_ramdisk=None (StrOpt)Default ramdisk image ID used in deployment phase
driver=nova.virt.baremetal.pxe.PXE (StrOpt)Baremetal driver back-end (pxe or tilera)
driver=nova.cells.rpc_driver.CellsRPCDriver (StrOpt)Cells communication driver to use
instance_type_extra_specs=[] (ListOpt)a list of additional capabilities corresponding to instance_type_extra_specs for this compute host to advertise. Valid entries are name=value, pairs For example, "key1:val1, key2:val2"
ipmi_power_retry=5 (IntOpt)maximal number of retries for IPMI operations
net_config_template=$pybasedir/nova/virt/baremetal/net-dhcp.ubuntu.template (StrOpt)Template file for injected network config
power_manager=nova.virt.baremetal.ipmi.IPMI (StrOpt)Baremetal power management method
pxe_append_params=None (StrOpt)additional append parameters for baremetal PXE boot
pxe_config_template=$pybasedir/nova/virt/baremetal/pxe_config.template (StrOpt)Template file for PXE configuration
pxe_deploy_timeout=0 (IntOpt)Timeout for PXE deployments. Default: 0 (unlimited)
sql_connection=sqlite:////home/fifieldt/temp/nova/nova/openstack/common/db/$sqlite_db (StrOpt)The SQLAlchemy connection string used to connect to the database
sql_connection=sqlite:///$state_path/baremetal_$sqlite_db (StrOpt)The SQLAlchemy connection string used to connect to the bare-metal database
terminal=shellinaboxd (StrOpt)path to baremetal terminal program
terminal_cert_dir=None (StrOpt)path to baremetal terminal SSL cert(PEM)
terminal_pid_dir=$state_path/baremetal/console (StrOpt)path to directory stores pidfiles of baremetal_terminal
tftp_root=/tftpboot (StrOpt)Baremetal compute node's tftp root path
use_unsafe_iscsi=False (BoolOpt)Do not set this out of dev/test environments. If a node does not have a fixed PXE IP address, volumes are exported with globally opened ACL
vif_driver=nova.virt.baremetal.vif_driver.BareMetalVIFDriver (StrOpt)Baremetal VIF driver.
virtual_power_host_key=None (StrOpt)ssh key for virtual power host_user
virtual_power_host_pass= (StrOpt)password for virtual power host_user
virtual_power_host_user= (StrOpt)user to execute virtual power commands as
virtual_power_ssh_host= (StrOpt)ip or name to virtual power host
virtual_power_ssh_port=22 (IntOpt)Port to use for ssh to virtual power host
virtual_power_type=virsh (StrOpt)base command to use for virtual power(vbox,virsh)

Log a bug against this page


loading table of contents...