OpenStack应用实战解析及开发入门

OpenStack应用实战演练及开发入门 滚动学习
(19人)

299.50 元 5 折

全场5折优惠,咨询QQ810476411

opentstack安装

     硬件要求 
       ◦ CPU: dual core 2.6GHZ+ 
       ◦ Memory: 4G+ 
       ◦ Disk: 40G+ 
     BIOS 虚拟化支持 VT

 

Virtual box 下载与安装 
◦ 官方下载最新版 
◦ 需要重启网络 
 Fuel master 镜像 
◦ 官方下载iso镜像 
 包含OpenStack 所以包 
 包含Centos 安装包 
 目前最新5.0(icehouse)

FUEL:生产环境

Openstack 自动化部署工具 
◦ 生产环境部署 
 基于web 的界面 
 免费并开源,功能丰富 
◦ OS安装 
◦ Openstack 服务康检查 
◦ 配置管理(puppet  e.g.)

 

3个虚拟机:

1. 3个虚拟网络

    net1:  fuel administrator 管理

    net2:  openstack的 public 物理网卡

    net3: storage 网络

 

 

 

 

 

[展开全文]

yum install  guestfish

guestfish --rw -a 镜像

run

 

[展开全文]

virt-install --name image-test --hvm  --ram 2048  --vcpus 2  --disk path=/var/tmp/image-test.img,size=10,bus=virtio,format=qcow2 --network network:default --accelerate --vnc --vncport=5908  --cdrom /var/tmp/CentOS-6.5-x86_64-bin-DVD1.iso  --boot cdrom

 

vi /etc/sysconfig/network-scripts/ifcfg-eth0

修改boot为yes 删除不必要的hardxxx

连接虚拟机

ssh root@192.168.100.134

镜像被重新加载instance时候 这个文件会重新生成

rm /etc/udev/rules.d/70-persistent-net.rules

禁用防火墙

vi /etc/sysconfig/iptables

删掉其中的所有记录,清除规则

 

service iptables restart重启防火墙

 

更新rpm包
yum install -y http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

安装一个包 针对于云的运行环境需要用到的特殊功能,需要定制化的script 这个包全部打包了这些

yum install  -y cloud-init

针对云的环境 需要特殊的功能

默认用户名字叫cloud-user  改成了centos


image-test.img虚拟机shutdown以后能启动,网卡信会被修改

格式转换 将vhd转换成raw

qemu-img convert -f vpc -o raw vhd-test.vhd vhd-test.vhd.raw

想转成其他格式 都需要先转换成raw格式,然后才能转换成其他格式

详细请看image-guide.pdf

 

 

 

[展开全文]

git clone https://github.com/openstack-dev/devstack.git

mkdir ~/.pip

cat > ~/.pip/pip.conf <<EOF

[global]

index-url = https://pypi.douban.com/simple/

EOF

[展开全文]

第一层物理层,定义一些物理接口标准,网线接口尺寸型号!

数据链路层,Mac地址通信,经过交换机连接

网络层,基于IP地址,路由器:把不同网段的网络进行路由选择

交换机是数据帧(MAC) 同网互通

路由器IP数据包  多网段互通

IP table

 

dhcp工具软件dnsmasq

命名空间解决重名问题

VLAN 2层网络广播隔离 IP地址划分 4096 直接在L2上实现

 

GRE通用路由封装协议 

跨不同网络二次IP通信,L3上面包装L3  封装到IP报文中

点对点隧道通信

GRE在SDN中的好处  虚拟机通信  方便guest的迁移

GRE的不足 大规模部署问题 和  性能问题 取数据包费劲

 Linux 接口类型 bridge看成交换机

物理网卡

loopback 回环

open vswitch 功能

网络隔离 QoS配置  流量监控  数据包分析

 

 

[展开全文]

提供network as a service

提供面向租户的api   创建网络,路由 负载均衡等等 方便管理自动化  提供plugin架构支持  不绑定在具体技术之上 可以根据用户自己需要来选择技术平台  还提供共有私有网络

network 是一个二层网络单元 一个虚拟的交换机  subnet 交换机的一个子网 

router  实现多个网络互同 

port 管理instance的网卡 

一个interface 对应一个port 对应N个IP

neutron  分为neutron api 和 plugin 

plugin 为了屏蔽底层 实现抽象  左边作为neutron的client  发请求到API  转型plugin 实现 然后在具体的nova的compute上  去创建网卡 实现IP地址 

neutron plugin由两部分组成 :一块在neutron上 一块在hypervisor上    整个创建过程 需要配合nova 调度来实现

neutron server&ml2  实现了api的扩展 管理维护netron的数据模型   subnet port network 等等

ML2 负责运行在每个计算节点上的每个网络端口 管理

DHCP 分配虚拟机IP 开始停止 dhcp的配置  在对应网段中 对虚拟机ip的分配

L3 float ip 和NAT

实现失望的IP地址 对外的联通  和外部访问虚拟机服务的支持

metadata 。。。。

首先一个用户创建一个有网络的instance  先去创建network  获取UUID 然后再去创建instance  然后去server 拿到interface  然后再去network去拿port  再去要求port 和interface 做关联 

调用 port create api  ---》neutron server --》消息总线放入消息 ---》dhcp-agent 分配IP  

modular layer 2 (ML2)

分为两类  一个typedriver  一个是mechanism drive   对底层网络的屏蔽  提供一个二层网络的接口

SDN 最后一种

 

 

 

 

 

 

[展开全文]

ethtool -S tap-root 、foo

ip netns add foo  创建了foo  namespace

ip netns exec foo ip a  查看网卡

建立虚拟网卡对 是namespace 网络互通

 

 

[展开全文]

brctl show 查看bridge情况

cat /etc/libvert/qemu/instance-0000002.xml

ip a

Netron 网络实现  计算节点与网络节点之间

GRE

经过instance 一块虚拟网卡  放在brige里面  用虚拟网卡对 连接到openvswich 的br-int 里

br-int 也是用虚拟网卡对

可以理解为 br-int 通过一条网线 接入br-tun连接   

bridge 通过 gre《N》隧道连接到其他主机

进入network节点  通过patch 虚拟网卡对 进入 br int bridge里面 brige里面有两个网口   qr<n> 他是属于br int  同时暴露在物理层 tep设备 同时也在一个namaspace里面  并且配置的路由  通过source  nat 一个规则  把数据包 通过eth0 发送到 Internet里

VLAN

一个brige 直接连过去就OK

TAP 设备  黄色 VETH Peir虚拟网卡对

TAP设备  通过查询物理地址 可以找到一个mac地址与另一个节点上一样的虚拟网卡  实现二层网络互通是 通过tap设备来实现

虚拟网络对  可以类似于虚拟的网线  用来连接虚拟的brige 和 虚拟交换机 

一个brige 接了虚拟网卡对 和 一个tap设备网卡 通过网络对 直接连到brige里

 

linux brige 类似于一个hub  网卡发出来的包 在这个brige的所有的接口都可以接到 把openvswitch的网络 接到虚拟机中。

用brctl show 来查看brige所连接的两个接口

instance xml文件张的配制文件  可以看到配制

virsh list 查看虚拟机列表

virsh edit 虚拟机  来查看虚拟机配制文件

网卡的名字是用tap开头  13位  来至于port的ID

没创建一个虚拟机  都会多出四个网口

一个是instance用的  还创建了一个brige QB开头  接了两个interface  一个是放了虚拟机的interfac  另外连接了一个虚拟网卡对,实现两个虚拟brige之间互通的网线。一头插在brige  一头插入openvswitch  经过openvswitch  打上tag  然后通过br-int  连接到 br-tun  连接到network节点上。

一个子网 有三个namespace 

 

 

 

 

 

[展开全文]

后端存储实现并不是cinder自己实现的

将磁盘变成逻辑卷

改名:

/etc/sysconfig/network

 

filter = [ "a/sda1/", "a/sdb/", "r/.*/"]

a 是接受的意思  只管理这两个磁盘或者分区  作为volume

[展开全文]

httpd 服务启动 Apache 服务启动

ps -ef 查看进程

 

[展开全文]

cd /.t/.tox/py26/lib/python2.6/site-packages/

 

ls|grep SQl  查看文件夹中SQL文件

[展开全文]

注意:当前的代码只能用于centos7的juno版。在centos6.5上使用时要将git的分支切换到stable的icehouse版本上。

先:git branch -a

后:git checkout -b icehouse origin/stable/icehouse

[展开全文]

发生500 internal server error 不能登录dashboard 原因:通过 vi /etc/httpd/logs/error_log 查看发现时在去掉注释号#是CACHES前面少退一个,改过之后即可。

[展开全文]

创建虚拟机失败提示找不到可用host是因为compute0节点的内存不够用。

[展开全文]

cinder volume 也就是cinder manager

cinder只是做管理而已,具体的实现由第三方软件来做。

[展开全文]
删除某一网络是先删掉相关联的路由器端口、instance等依赖先删掉。
[展开全文]

QQ客服: 810476411

QQ咨询: 810476411

QQ吐槽: 810476411

服务时间: 9:00 - 21:00

刘老师: 18516031455

微信公众号:开源力量