OpenStack 启动第一个云主机

发布时间: 更新时间: 总字数:2290 阅读时间:5m 作者: IP:上海 网址

本文介绍基于 devstack 搭建的 OpenStack 环境创建云主机

项目、用户创建

$ openstack domain create --description "Default Domain" default
$ openstack project create --domain default --description "Admin Project" admin
$ openstack user create --domain default --password-prompt admin
$ openstack role create admin
$ openstack role add --project admin --user admin admin

创建cirros镜像

下载地址:http://download.cirros-cloud.net/ 默认用户名/密码:cirros/gocubsgo

openstack image create cirros-0.5.1-x86_64-disk --public --container-format bare --disk-format qcow2 admin < cirros-0.5.x-aarch64-disk.img

网络创建

创建network

openstack-network-create

创建subnet

openstack-subnet-create

创建子网时:

  • 若指定 --dhcp 会在 网络节点 自动创建 Linux net namespacesnetns 的名称为 qdhcp-<network-id>。其中 10.0.0.2dhcpIP 地址。
  • 若没有指定 --dhcp,当前不会创建 netns

查看 netns 中信息如下:

ovs-netns-1

可以在 netns 看到一个tap设备:tap9f56395b-d1,IP地址为:10.0.0.2/24

  • tap设备命名规则:tap<port-id-prefix-11>
  • tap9f56395b-d1 会自动挂载到 OVSbr-int
ovs-vsctl-1

创建安全组

openstack-security-group-create

可以根据自己的需求,添加其他的规则。

创建vm

创建

openstack-server-create

新创建主机的IP地址为:10.0.0.242

qemu 进程

qemu-proc

其中,网络配置 tap,fd=33,信息如下:

-netdev tap,fd=33,id=hostnet0 -device virtio-net-pci,host_mtu=1450,netdev=hostnet0,id=net0,mac=fa:16:3e:34:27:00,bus=pci.0,addr=0x3

查看 qemu/proc/4221/fd/33 指向 /dev/net/tun 设备

$ sudo ls -lh /proc/4221/fd/ |grep tun
lrwx------ 1 libvirt-qemu kvm 64 Mar 24 10:13 33 -> /dev/net/tun
$ sudo file /proc/4221/fd/33
/proc/4221/fd/33: symbolic link to /dev/net/tun
$ sudo cat /proc/4221/fdinfo/33
pos:	54
flags:	0104002
mnt_id:	27
iff:	tap0a82ef18-98  # 与OVS br-int的名称一致

其他查看 tap/tun 设备命令:

$ sudo ip tuntap list | grep tap0a82ef18-98
tap0a82ef18-98: tap vnet_hdr

OVS 信息

  • ovs br 信息
ovs-vsctl-2

其中 tap0a82ef18-98 为新增的 tap设备0a82ef18-98 为 port 10.0.0.242 ID 0a82ef18-9834-4baf-9f96-c2a586e56f48 的前11位

因此,VM 在 OVS br-int 网桥 tap 命令规则为:tap<port-id-prefix-11>

  • ovs br-int 流表信息
ovs-ofctl-1

ping 验证

  • 创建安全组
$ openstack security group rule create 6e28e3c1-6959-4dfb-99b1-b7277e6353a0  --ingress --remote-ip 0.0.0.0/0 --protocol icmp --project 45837e6267c44d7788a919d6e342e64c
+-------------------+--------------------------------------+
| Field             | Value                                |
+-------------------+--------------------------------------+
| created_at        | 2021-01-03T02:39:06Z                 |
| description       |                                      |
| direction         | ingress                              |
| ether_type        | IPv4                                 |
| id                | 4f067654-818a-4d90-b0d6-d0ffc346e0a4 |
| name              | None                                 |
| port_range_max    | None                                 |
| port_range_min    | None                                 |
| project_id        | 45837e6267c44d7788a919d6e342e64c     |
| protocol          | icmp                                 |
| remote_group_id   | None                                 |
| remote_ip_prefix  | 0.0.0.0/0                            |
| revision_number   | 0                                    |
| security_group_id | 6e28e3c1-6959-4dfb-99b1-b7277e6353a0 |
| tags              | []                                   |
| updated_at        | 2021-01-03T02:39:06Z                 |
+-------------------+--------------------------------------+
  • netnsping
$ sudo ip netns exec qdhcp-e022f4ea-e955-4bcd-b2fa-af6616d3eb12 ping -c 1 10.0.0.242
PING 10.0.0.242 (10.0.0.242) 56(84) bytes of data.
64 bytes from 10.0.0.242: icmp_seq=1 ttl=64 time=1.17 ms

--- 10.0.0.242 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 1.178/1.178/1.178/0.000 ms

至此,基于OpenStack创建VM已经介绍完毕,接下来会依次介绍VM其他配置。

本文总阅读量 次 本站总访问量 次 本站总访客数