云计算综述

neutron nova keystone 各种组件

网络技术领域知识

平安科技(深圳)有限公司

1.image 创建命令:

1
2
glance image-create --name cirros --file /tmp/cirros-0.3.4-x86_64-disk.img --
disk-format qcow2 --container-format bare --progress

2.详细命令:

keystone user-list # 被取代
openstack user list

glance image-create
glance image-delete
glance image-update
glance image-list
glance image-show    

neutron net-create
neutron net -delete
neutron net -update
neutron net -list
neutron net –show    

neutron subnet-create
neutron subnet -delete
neutron subnet -update
neutron subnet -list
neutron subnet–show

nova boot
nova delete
nova list
nova show    

# 每个对象都有id

tcp/ip协议不是一个协议,而是一个协议族的统称。里面包括了IP协议,IMCP协议,TCP协议,以及我们更加熟悉的http、ftp、pop3协议等等

1.为什么建立连接协议是三次握手,而关闭连接却是四次握手呢?

这是因为服务端的LISTEN状态下的SOCKET当收到SYN报文的建连请求后,它可以把ACK和SYN(ACK起应答作用,而SYN起同步作用)放在一个报文里来发送。但关闭连接时,当收到对方的FIN报文通知时,它仅仅表示对方没有数据发送给你了;但未必你所有的数据都全部发送给对方了,所以你可以未必会马上会关闭SOCKET,也即你可能还需要发送一些数据给对方之后,再发送FIN报文给对方来表示你同意现在可以关闭连接了,所以它这里的ACK报文和FIN报文多数情况下都是分开发送的。

2.为什么TIME_WAIT状态还需要等2MSL后才能返回到CLOSED状态?

这是因为虽然双方都同意关闭连接了,而且握手的4个报文也都协调和发送完毕,按理可以直接回到CLOSED状态(就好比从SYN_SEND状态到ESTABLISH状态那样);但是因为我们必须要假想网络是不可靠的,你无法保证你最后发送的ACK报文会一定被对方收到,因此对方处于LAST_ACK状态下的SOCKET可能会因为超时未收到ACK报文,而重发FIN报文,所以这个TIME_WAIT状态的作用就是用来重发可能丢失的ACK报文。

sdn

SDN采用与传统网络截然不同的控制架构,将网络控制平面分离和转发平面分离,采用集中控制替代原有分布式控制,并通过开放和可编程接口实现“软件定义”。与传统的网络架构相比,SDN通过软硬件分离,实现了网络虚拟化、IT化及软件化,并降低了设备的复杂度、简化网络运维、提高网络利用率、加速网络创新。

evpn

EVPN是一种虚拟私有网络,那么在一套物理设备上必然可以有多个同时存在的EVPN实例,每个实例独立存在。每个EVI连接了一组或者多组用户网络,构成一个或者多个跨地域的二层网络。

vxlan

虚拟可拓展局域网

from multiprocessing import Pool
from multiprocessing.dummy import Pool
哪个速度快就用那个。尽量在写兼容的方式,这样在多线程/多进程之间切换非常方便。

现在,如果一个任务拿不准是CPU密集还是I/O密集型,且没有其它不能选择多进程方式的因素,都统一直接上多进程模式。

使用多线程(threading)和多进程(multiprocessing)完成常规的需求,在启动的时候start、jon等步骤不能省,复杂的需要还要用1-2个队列。随着需求越来越复杂,如果没有良好的设计和抽象这部分的功能层次,代码量越多调试的难度就越大。有没有什么好的方法把这些步骤抽象一下呢,让我们不关注这些细节,轻装上阵呢?

答案是:有的。

从Python3.2开始一个叫做concurrent.futures被纳入了标准库,而在Python2它属于第三方的futures库,需要手动安装:

这个模块中有2个类:ThreadPoolExecutor和ProcessPoolExecutor,也就是对threading和multiprocessing的进行了高级别的抽象,
暴露出统一的接口,帮助开发者非常方便的实现异步调用

  • lsvirtualenv: 列出全部的虚拟环境
  • showvirtualenv: 列出单个虚拟环境的信息
  • rmvirtualenv: 删除一个虚拟环境
  • cpvirtualenv: 拷贝虚拟环境
  • allvirtualenv: 对当前虚拟环境执行统一的命令。 比如, 要给 venv1 和 venv2 都安装flask, 就可以用allvirtualenv pip install flask
  • cdvirtualenv: 可以直接切换到虚拟环境的子目录里面