6月 072018
 

时移世易,变法宜矣

上胡不法先王之法,非不贤也,为其不可得而法。先王之法,经乎上世而来者也,人或益之,人或损之,胡可得而法?虽人弗损益,犹若不可得而法
凡先王之法,有要於时也,时不与法俱至。法虽今而至,犹若不可法。故释先王之成法,而法其所以为法。先王之所以为法者何也?先王之所以为法者人也。而己亦人也,故察己则可以知人,察今则可以知古,古今一也,人与我同耳。有道之士,贵以近知远,以今知古,以益所见,知所不见。故审堂下之阴,而知日月之行、阴阳之变;见瓶水之冰,而知天下之寒、鱼鳖之藏也;尝一脟肉,而知一镬之味、一鼎之调。

http://blog.sina.cn/dpool/blog/s/blog_5d245fe70102w9j9.html

 Posted by at 下午 6:52

openstack 之 计算节点名字

 openstack, 默认分类  openstack 之 计算节点名字已关闭评论
5月 242018
 

如下图: 虚拟机管理器和计算主机中显示的主机的名字不同,为什么呢?

 

说明:

虚拟机管理器说的是hypervisor,具体来讲就是libvirtd

主机说的是虚拟机管理器所在的宿主机,就是我们所谓的计算节点

二者的信息都是记录在nova.compute_nodes 表中的,二者都没有唯一约束;

当然,host是不会重复的;特殊情况下hypervisor_hostname 重复是有可能的; 从dashboard来看,节点资源是hypervisor的,而不是host的。

而且也可以存在一个host上有多个虚拟机管理器的情况,一个nova-compute接到任务后,可以通过不同的虚拟机管理器来创建虚拟机

 

分析:

不同计算节点上使用相同hypervisor_hostname时,hypervisor将拥有了多个机器的资源,那么虚拟机调度时参考hypervisor_hostname的资源的话,虚拟机分配的任务最终会被分配到哪个host上呢?毕竟不同host上都有nova-compute进程的; 另,上报资源时使用的是node的uuid还是host还是hypervisor_hostname?

node的uuid又是如何生成的呢?

hypervisor_hostname 是如何获取到的呢?hypervisor_hostname是不是第一次注册的时候写入后来就不再修改了呢?

主机资源是记录在 nova_api.resource_providers 表中的:

当然,只有nova.compute_nodes 表中记录的uuid才是有效的resource_providers,才会被dashboard显示

 

为什么node节点的hostname已经修改了,虚拟机管理器中显示的还是以前的名字?

nova-compute.log 中会有错误信息:

 

问题: 谁和谁不一致?重启谁?

解决办法:

比较: hostname 和virsh hostname的结果:

二者是不同的,前者的信息是从libvirtd中获取到的,也就是说,libvirtd中显示的主机名和当前的主机名不一致,需要重启libvirtd, 相关逻辑:

 

 

问题:

  1. 重启libvirtd需要先关闭所有虚拟机吗?
    答案: 不需要的,直接重启就行
  2. 虽然我重启了libvirtd,但是virsh hostname 还是 和 hostname不一样,为什么?
    答案: 因为我在/etc/resolv.conf 中配置了search i.beebank.com, libvirtd会自动suffix上search domain的
  3. 虽然现在virsh hostname 和hostname一致了,但是dashboard中看到的还是原来的,为什么?
    答案: 重启一下openstack-nova-compute

 

总结:

  1. 确认一下 /etc/resolv.conf  的配置
  2. systemctl restart libvirtd && systemctl restart openstack-nova-compute

注意:

  1. 修改了libvirtd的hostname之后,需要去数据库中手动修改相关虚拟机(nova.instances表中)的hypervisor_hostname,否则,就找不到这些机器的hypervisor了,而新的hypervisor下也是没有虚拟机的

 

 

 Posted by at 上午 11:13

qemu-kvm 问题

 默认分类  qemu-kvm 问题已关闭评论
5月 032018
 

guest内部显示内存充裕:

 

宿主机内存也充裕:

 

guest 对应的qemu-kvm进程在不停地将内存中的数据交换到swap中:

 

还有相同问题的另一个实例:

宿主机有足够的内存,qemu-kvm占用5.3G的swap,只使用566MB的内存,为什么?

guest内部的内存使用情况如下:

 

分析:

我们可能看见guest中看到的已用内存小于kvm进程的rss, 因为kvm进程的内存不仅包含提供给guest使用的内存,也包含自身其他需要的内存。

我们也可能看见guest中看到的已用内存大于kvm进程的rss,因为guest看到的内存未必是真正的内存,很可能早已被宿主机给交换到swap中去了,这就是我们上面看到的情况;guest刚刚起来的时候,并没有直接分配自己可以使用的最大内存,但是,可能某一个时刻一下子占用了90%的内存,当内存下降到10%的时候,80%的内存并没有还给宿主机,而是闲着,但是,宿主机永远不知道这80%的内存是在闲着的,唯一知道的就是好长时间没有访问了,于是,宿主机可能就会将这部分(不活跃的)内存交换到swap中去;等到guest想用内存的时候,其实访问的并不是内存,而是宿主机上的swap; 疑问: 随着guest中这80%的内存的频繁使用,会使得guest的真实内存变多而swap变少吗?应该会的

 

场景1: 大内存的kvm(16GB),里面只有一个使用很少内存(200MB)的小程序,不断地从外部下载文件,写入到磁盘中,结果就是: 下载过的文件都会被尽量缓存到内存中,16GB的内存大部分用于cache了,而且下载过的文件基本不会再被使用,于是,这部分内存就是in-active的了,于是,表现在宿主机上,这部分内存就会被尽力swap到磁盘上,当宿主机的swap被用尽时,其他进程想swap却很为难:

guest:

宿主机上:

宿主机上的kvm进程的RES远大于guest中内存的used,因为宿主机上的swap已用尽,如果添加更多的swap的话,会继续有更多的RES迁移到swap中去。

 

解决办法:

  1. guest本没必要使用16GB内存,给2GB就可以了; (尽管如此,也会有不必要的cache存在)
  2. guest中可以定期地drop cache,避免cache占用太大; 理论上来讲,一旦guest有大量的cache占用了内存,即使drop cache了,宿主机上也不会释放这部分内存(或swap),因为宿主机根本不知道这部分内存是不再使用了的;(当然,可以通过别的方式真正意义上回收这部分内存),如下:

    guest中drop cache后,buff/cache使用1.2G,宿主机上的RES、swap依然保持不变; 其实,不仅drop cache不能影响宿主机分配给guest的内存大小,reboot guest都不会影响宿主机分配给guest的内存大小的,因为reboot guest是热引导,kvm进程还是原来的进程,宿主机也不知道里面发生了重启的动作,所以,分配给kvm进程的资源也不会有变化

 

参考资料:

https://searchservervirtualization.techtarget.com/tip/Memory-swap-strategies-for-KVM

 Posted by at 下午 4:49

http 之 非常规部分响应

 默认分类  http 之 非常规部分响应已关闭评论
4月 032018
 

 

当在chrome上测试video标签的流媒体播放mp4时,发现确实不会完全下载完再播放,关键是使用range http头时从来只指定开始位置,不指定结束位置,为什么呢?

chrome video标签加载mp4的大概逻辑是:

  1. 先查看一下资源大小,一般来讲,head方法可以查看资源大小,但是chrome没有使用head方法(怀疑是考虑到很多服务器管理员并不专业,仅仅允许GET、POST方法),而是使用了GET + range ( range: 0- )头的方法; 但是,这样web服务器会比较规矩地返回整个文档内容,并且告知文档的总大小,显然,浏览器并不想要全部的内容(而仅仅想看看资源最后的64KB),怎么办呢?于是,读取到自己想要的信息(http头中包含的资源总大小)就把连接close掉,如此一来,client再收到后续的数据包的时候,就自然会reset了
  2. 知道了资源总大小后,再次发送一个GET请求,这次只请求资源的最后64KB(瞎猜,最后64KB估计是包含一些元信息吧),这次就可以正常结束请求,而不需要使用鲁棒的reset
  3. 后续的按需加载,不过,也并没有使用严格的range来指定想要的大小:

    也是client想读多少就读多少,最后reset掉,或许和mp4格式有关系,毕竟mp4不是流媒体格式,client应该真的不知道要确切读多少才行

 

 

 

 

 Posted by at 上午 10:31

EMC设备参观

 storage, 默认分类  EMC设备参观已关闭评论
3月 212018
 

产品: unity500

 

实物拍照:

前面板:

上面是一个扩展柜,下面是一个主机,都是2u的设备

后面板:

从后面来看,扩展柜比主机要短一截

(话说,这布线也够烂的)

其它:

  • unity500就是最多支持500块儿盘,unity400就是最多支持400块儿盘
  • 从前面板可以看到,每个扩展柜(或主机)支持2.5英寸盘25个,(具介绍,如果是3.5英寸盘类型的盘柜的话,可以插15个)
  • unity的web管理界面常用到的功能是池子的创建、lun的创建等;
  • 不满意的地方: 每个磁盘只能属于一个池子

 Posted by at 下午 3:45

关于ssl证书提供商

 默认分类  关于ssl证书提供商已关闭评论
1月 182018
 

缘起:

我从赛门铁克买的证书是Verisign签发的,后来说是证书有问题,需要重签,拿到的证书就成了DigiCert签发的了;而且邮件里面给出的证书的安装配置和使用方案,请参考:

https://www.itrus.cn/service_13.html 这个地址是天威诚信的网站。

那么, Verisign  / Symantec / DigiCert  /  天威诚信   都是啥关系?

天威诚信是Symantes中国大陆地区的首要合作伙伴。

2010年8月,赛门铁克收购VeriSign,VeriSign认证服务现均由赛门铁克提供。赛门铁克重点在2012年4月对VeriSign的产品名称和品牌标识进行变更;

2017年8月份, 赛门铁克把web安全业务卖给了DigiCert , 并占有DigiCert 30% 的普通股: http://www.cnbeta.com/articles/tech/637909.htm

 

更多: GeoTrust 似乎也是重要的SSL证书提供商,那么和上述的机构是否也有关系呢?

参考: https://baike.baidu.com/item/verisign/8794893

VeriSign 是全球最大的数字证书颁发机构,于 2006 年 9 月以 1.25 亿美元完成收购 GeoTrust ,当时 GeoTrust 约占全球 25% 市场分额。VeriSign通过与中国内地数字认证服务商天威诚信合作共同推进数字证书业务在国内的发展

 

参考:

http://www.ert7.com/symantecs.html

https://marketrealist.com/2017/08/why-symantec-sold-its-web-security-business-to-digicert

http://www.cnbeta.com/articles/soft/636841.htm

http://tech.sina.com.cn/roll/2017-03-28/doc-ifycspxp0209037.shtml

https://www.digicert.com/blog/digicert-to-acquire-symantec-website-security-business/

https://www.symantec.com/about/newsroom/press-releases/2017/symantec_0802_01

http://www.cnbeta.com/articles/tech/630921.htm

 Posted by at 下午 3:32

时延与带宽之间的关系

 默认分类  时延与带宽之间的关系已关闭评论
1月 052018
 

带宽计算公式为:带宽=时钟频率*总线位数/8

对于网线来讲,总线位数等于1,而且公式里的带宽单位显然是byte/s

时延 包括好多方面

仅从链路上的传输时延来讲,仅仅和信号在介质上的传播速度有关系,和带宽没有关心

为什么给人的感觉是带宽越大,延迟越小呢?我觉得,更大的带宽可以在大数据量时降低排队时延,进而降低总体时延;如果设备没有任何负载,从结点A发送到结点B一个数据包的时延应该和A、B之间的带宽没有一毛钱关系。

又是什么影响带宽的呢?

我觉得带宽是由频率决定的,单位时间内,产生的波峰和波谷越多,就意味着信息量越大,也就是带宽越大

 

带宽和延迟之间的关系:

当数据量很小时,延迟基本会稳定在某个值左右。随着数据量的变大,延迟也会变大;就好比从北京开车去广州,高速上车越多,花费的时间也就越多,尽管还没达到最大吞吐量,延迟已经很厉害了。 当然,如果你走土路,可能和车多少关系也不大,这个就是介质问题。

所以,高带宽和低延迟需求要分开考虑,尽量使用不同的网络。

参考: http://m.blog.csdn.net/u013830021/article/details/73648091

http://m.blog.csdn.net/xchbx/article/details/11537951

 Posted by at 下午 7:49