虚拟机上如果跑业务,启动时不可避免的要从外界获取一些信息,在OpenStack中,这些信息通常是,密钥信息, 网络信息,metadata, root密码,自定义文件等。这些信息获取来源有如下几种。
Config Drive
Nova可以配置为,将userdata和metadata信息写入一种特殊的配置驱动--config drive,当虚拟机启动时自动挂载,虚拟机可以从该驱动获取信息(比如虚拟机id,主机名或user data),当DHCP服务不可用时,通常使用Config Drive传递网络配置信息(IP地址,掩码,或者网关)。
继续阅读 »
计算机内部通信时,可以使用管道,内存共享,信号量,消息队列等,在计算机间的通信时,在运输层使用协议的端口号来标识,计算机的一个进程,即;IP地址+协议+端口号标识网络中的一个进程,也被称之为套接字。
more
端口号
TCP中使用16位的端口号用于标识端口,故端口号的范围是:0~65535,共$2^{16}$个端口。
端口号分类
服务端
熟知端口号:
取值范围:0~1023
应用程序|FTP|TELENT|SMTP|DNS|TFTP|HTTP|HTTP|SNMP
--|--|--|--|--|--|--|--|--|--
端口号|21|23|25|53|69|80|443|161
- 登记端口号:
取值范围:1024~49
继续阅读 »
本文原本是在我的CSDN博客里发布,时隔几个月,重新温习一下,顺手完善一些内容,发在这里。(深藏功与名)
版本:Havana
部署:多节点
网络类型:vlan
之前的一篇blog中碰到了虚拟机访问169.254.169.254的问题,在F版中,会在网络节点上做NAT转换,直接访问nova的metadata服务,但这种方法,在使用namespace时就不生效了,因为namespace支持IP地址重叠,这样nova就无法区分到底是哪个虚拟机请求metadata。
该问题在G版得到解决,blueprint在此。采取的方法是在HTTP头部识别是哪个虚拟机。同时,G版在neutron中加入了两个服务:namespace me
继续阅读 »
tbox目前支持sqlite3、mysql两种关系型数据库(需要链接对应的libsqlite3.a和libmysql.a),并对其接口进行了封装,使用更加的方便简洁并且只需要换个url,就可以随时切换成其他数据库引擎,而不需要修改接口。
下面先看个简单的例子:
```c
/* 初始化一个mysql数据库
*
* localhost: 主机名,也可以是ip地址
* type: 数据库的类型,目前支持:mysql 和 sqlite3两种类型
* username: 数据库用户名
* password: 数据库用户密码
* databas
继续阅读 »
关于 NAT,你所不知道的一切
作为程序员,我们都知道,ipv4地址很早就不够用了,然后有一项技术,可以内网用同一个外网 ip——是的,那就是 NAT(Network Address Translation),网络地址交换技术。
它的原理,其实很简单。假如分配给你的内网地址是10.9.8.11, 而公网是169.5.6.1, 内网地址是没办法与外网通信的——因为其他地方也有内网,也会有跟你一样的地址10.9.8.11。
继续阅读 »
服务的增删改查
在Nova中提供对Service资源的操作API,包括服务的查询、删除、更新。
查询操作使用如下(假设你已经拿到了keystone的token):
URL: http://{ip}:8774/v2/{tenant-id}/os-services(后面可以加过滤条件?binary=nova-compute或者?host=ubuntu)
Accept: application/json
Content-Type: application/json
X-Auth-Token: {token}
在看返回消息体之前,先熟悉一下Service的数据库模型:
id = Column(Integer, pri
继续阅读 »
项目地址:https://github.com/yanqing6628780/angular2_ubus_openwrt
该项目是在公司的pandorabox固件的ubus接口下,使用angular进行开发尝试。
所以,要运行该项目:
- 你需要一个路由器
- 该路由器需要刷入pandorabox或者openwrt固件
- 固件内需要有以下ubus命令:
- session
- uci
如果你路由器不是192.168.1.1的ip,你还需要修改proxy.conf.json文件。
该项目是从angular的hero项目clone下来后直接修改的。只app内的文件,其他配置基本没有修改。
用到的知识点如下:
-
继续阅读 »
1. 连接数过高
Redis连接数过高,且没有修改进程能打开的最大文件数,当达到最大文件数限制时,Redis在accept新连接的时候会立即报错"Max open files",无法成功获取该连接,此时,listen socket是持续可读的状态,事件循环直接把CPU跑满。这种现象还可能与没有配置Redis配置文件中的timeout参数有关,不设timeout参数,Redis不会主动关闭僵尸连接,导致连接数越来越高,容易达到限制。
解决方法:1)config set timeout xx修改keeplive时间;2)client kill ip:port杀死一部分僵尸连接;3)修改系统参数,增加单进程能打开的最大文件数。
这一点M
继续阅读 »
Samba简介
Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。通过设置“NetBIOS over TCP/IP”使得Samba不但能与局域网络主机分享资源,还能与全世界的电脑分享资源。
如果您工作的环境中既有微软的Windows又有Linux,那么,一个共享文件及目录的方式便是通过一个跨平台网络文件共享协议:
继续阅读 »
在 1989 年三月的一天,CERN(欧洲核子研究组织)的伯纳斯李(Tim BernerLess)博士提出一种让远隔两地的研究者们共享知识的设想。将共享的资料文档相互关联形成超文本(Hyper-Text),文档如何在网络上传输,以及到了另一端如何识别,当时有一个共识这些事情站需要站在另一个巨人 TCP/IP 肩上,形成了一项协议起名为HTTP(超文本传输协议)。
继续阅读 »