|
|
OpenStack计算服务的裸金属驱动通过通用API或其他工具如编排服务(Heat)来管理物理硬件的供应。该驱动常用于单租户云环境,如高性能计算集群,或用于部署OpenStack自身。& l- _5 z) Z/ ^# o# }% ?. ]. \
要使用裸金属驱动,必须创建一个网卡并添加到裸金属节点。在此之后即可从裸金属镜像启动一个实例。
$ J. j$ N8 p( E6 z% F3 t1 @可以列出和删除裸金属节点。删除节点时,所有关联的网卡都会被移除。可以列出、移除所有关联到一个裸金属节点的网卡。7 A7 {+ s; a4 g2 G& t. |$ p9 [
命令¶
* o7 [4 h! g5 B3 M' f' e下列命令用于管理裸金属节点。$ T) j4 z2 j' o- v" P
baremetal-interface-add( G4 Q' A4 s9 {* p0 [8 p' V+ m
为裸金属节点添加网卡。
- d. n' ^7 ]: r$ H# x% r& I, Ubaremetal-interface-list
+ i- n+ U3 g( k列出绑定到裸金属节点的网卡。
7 c- v4 H& o2 E) C, s. D4 abaremetal-interface-remove
+ i1 M! ~3 {2 `: H# x2 F2 M) |从裸金属节点移除一个网卡。' ^4 b) ] P+ A3 w; v1 i
baremetal-node-create
, \2 A/ m4 ?: k1 h% O: ^+ q创建裸金属节点。) d* j5 w: O2 ?
baremetal-node-delete1 s2 K; I9 E6 `( \
移除一个裸金属节点及其关联的所有网卡。
: I' r8 K- J; G4 k) P3 w. |/ l8 Ubaremetal-node-list
3 s6 i& o( w2 d% O0 u列出可用的裸金属节点。
$ G8 S1 E2 w% h4 lbaremetal-node-show8 X5 r" i4 f1 E! Q/ e2 b( t( F4 [1 g
显示裸金属节点的信息。) }' c- n! q% y0 F2 H' p% }
创建裸金属节点¶
! D- z. ^7 d( I+ j ]创建裸金属节点时,PM地址,用户名和密码必须和硬件BIOS/IPMI配置一致。
! H# m4 A% ?' }) q+ g$ nova baremetal-node-create --pm_address PM_ADDRESS --pm_user PM_USERNAME \5 X( d) K( e8 O
--pm_password PM_PASSWORD $(hostname -f) 1 512 10 aa:bb:cc:dd:ee:ff
: K; N2 L2 U. _: N; ?$ q以下示例中展示了创建一个裸金属节点的命令和结果,裸金属节点的PM地址为``1.2.3.4``, 用户名为 ipmi, 密码为 ipmi.
9 S% }/ E8 W, ~0 \$ nova baremetal-node-create --pm_address 1.2.3.4 --pm_user ipmi \
: i% K! y- t# m7 ^# G --pm_password ipmi $(hostname -f) 1 512 10 aa:bb:cc:dd:ee:ff
( l2 M4 L1 B- s. V# x+------------------+-------------------+
6 {! y) y. k+ H# {& `/ u0 J! ?| Property | Value |
! Y- B. t8 m! |( T- d ]2 b+------------------+-------------------+
) x8 q$ R5 J Y" l| instance_uuid | None |
5 K2 X6 T* j7 l( H| pm_address | 1.2.3.4 |+ V; `: _5 D; X1 X9 H
| interfaces | [] |
! f3 B8 ~$ R6 m; T3 || prov_vlan_id | None |
6 U2 ^* L1 M0 ]5 k| cpus | 1 |7 V I. `: b) x) I0 O
| memory_mb | 512 |
3 q; r/ A+ ^' i6 w| prov_mac_address | aa:bb:cc:dd:ee:ff |
' l! Y' ]% I/ o) l1 M% || service_host | ubuntu |
! L; H7 k+ F: ?9 h. J6 x" {| local_gb | 10 |& D1 `6 D0 P3 g7 u9 S$ U- x, J: {1 O
| id | 1 |
9 O2 B. l0 s6 m| pm_user | ipmi |7 {) G0 [% Q* N. V) i2 T) j
| terminal_port | None |
. \: c9 N; {, T) x9 h+------------------+-------------------+
% t3 E& p+ f" F/ u, ^1 Z; _, ?- |添加一个网卡到节点¶
% L, z2 Y1 s& n& i' m0 g. }8 t e节点的每个网卡都要指定MAC地址创建接口。$ J8 i2 W: S, [4 Z. z2 k, i3 S3 U I
$ nova baremetal-interface-add 1 aa:bb:cc:dd:ee:ff3 N7 U5 E4 ?& k9 [
+-------------+-------------------+0 Y, A% S8 I' ]6 S( Q5 K. |) p3 B
| Property | Value |2 l' W* q, @2 l1 c8 Y
+-------------+-------------------+
6 }5 P, W$ e% C" h+ S| datapath_id | 0 |7 ]3 ], y7 Y1 D7 R+ V
| id | 1 |* y7 o# C' {7 p B4 v
| port_no | 0 | s/ H9 @1 T% g( Y
| address | aa:bb:cc:dd:ee:ff |
& P, y4 E# e' J3 J: R+-------------+-------------------+) P: L2 H6 P! n% B
从裸金属镜像启动一个实例。¶
3 `, n; T5 o5 \裸金属实例是直接创建在物理机上的实例,下层没有虚拟化层。Nova通过IPMI保留了电源控制。在某些情形下,Nova也通过Neutron和OpenFlow保留网络控制。7 B. f7 O3 I8 \ I& B
$ openstack server create --image my-baremetal-image --flavor \& h1 Z+ p! Q' f3 W* t5 ?% x
my-baremetal-flavor test
f: {0 P# ]$ O2 B +-----------------------------+--------------------------------------+
- {& N' v' s$ _; a$ ] | Property | Value |- \0 F2 S; N6 E0 ?
+-----------------------------+--------------------------------------+
; C! k( R" j' J6 x | status | BUILD |5 u X- O2 H/ o# d% y% S5 C, `
| id | cc302a8f-cd81-484b-89a8-b75eb3911b1b |
% l9 e8 M+ g8 f5 U +-----------------------------+--------------------------------------+
. B+ T7 p/ D3 S+ {" J6 _... wait for instance to become active ...
: ~8 Z9 i8 Q8 F( Q 注解
3 [+ J( ]0 [2 ~# f$ p' JSet the --availability-zone parameter to specify which zone or node to use to start the server. Separate the zone from the host name with a comma. For example:8 b+ H/ N1 F# f/ I8 U+ p
$ openstack server create --availability-zone zone:HOST,NODE
7 y0 Q1 X8 \8 U2 G0 Mhost is optional for the --availability-zone parameter. You can simply specify zone:,node, still including the comma.
% G2 k5 m/ X# m9 j列出裸金属节点和接口¶" x' ?" m0 v& r- O
使用:command:`nova baremetal-node-list`列出裸金属节点和接口。节点被使用时,其状态包含运行在其上的实例的UUID:! t* g! g3 a4 q% u. y0 a) k6 Z
$ nova baremetal-node-list. ?! H" `/ b+ S; H2 M* Q
+----+--------+------+-----------+---------+-------------------+------+------------+-------------+-------------+---------------+( P" y- P4 S% ~, \0 [0 I! V
| ID | Host | CPUs | Memory_MB | Disk_GB | MAC Address | VLAN | PM Address | PM Username | PM Password | Terminal Port |# j% Q; b3 f* a: Y/ `/ Y) r
+----+--------+------+-----------+---------+-------------------+------+------------+-------------+-------------+---------------+
* }, C% w R& g| 1 | ubuntu | 1 | 512 | 10 | aa:bb:cc:dd:ee:ff | None | 1.2.3.4 | ipmi | | None |
$ u* z7 j$ U5 L! W$ E" w+----+--------+------+-----------+---------+-------------------+------+------------+-------------+-------------+---------------+; c* m; V9 F. [! p3 v
显示裸金属节点的详细信息¶
$ r0 H4 }$ S' O q9 L+ I! W% f使用 nova baremetal-node-show 查看裸金属节点的详细信息:
0 h% y( ]. s6 V1 O. q$ nova baremetal-node-show 16 ^) x% m7 j% n1 r1 V8 d7 O
+------------------+--------------------------------------+" s1 O' J$ r2 `* {
| Property | Value |& ~$ u( H, b& p0 E) V1 \' [
+------------------+--------------------------------------+6 Z* ^: s( b9 Z" h
| instance_uuid | cc302a8f-cd81-484b-89a8-b75eb3911b1b |. X+ {& M( T4 v; m' P+ H! x# K
| pm_address | 1.2.3.4 |
" f8 k, W6 T' L/ e7 _4 ^| interfaces | [{u'datapath_id': u'0', u'id': 1, |
1 H( p! ~6 q" ~ ]| | u'port_no': 0, |
p) k, M3 u$ J' X| | u'address': u'aa:bb:cc:dd:ee:ff'}] |
' ?& l& y1 J! {7 X6 a. I| prov_vlan_id | None |& Q7 g2 e9 W3 w) r8 d$ A
| cpus | 1 |
2 o# E( _" ^- o t' S| memory_mb | 512 |
' N1 s' ?, U: l6 y3 y0 R# b) X| prov_mac_address | aa:bb:cc:dd:ee:ff |) Y5 e7 N5 G0 ]4 t/ ]
| service_host | ubuntu | A2 A: k( O4 j7 q$ L8 Z n
| local_gb | 10 |, {* O3 |1 W o5 m4 W. ~
| id | 1 |
# J' j& y/ @5 F4 K0 m$ p5 e! P$ ?% m| pm_user | ipmi |
, w2 R+ F0 [. J1 e, p: x! b8 D( \| terminal_port | None |
* P9 a: O% h3 T2 {* W+------------------+--------------------------------------+- [' e& R6 ^8 E3 p+ ?0 X& g4 ]1 O
|
|