mac brew HOMEBREW_NO_GITHUB_API

brew install spinx-build 的时候可能会遇到如下错误:

修改 /usr/local/Library/Homebrew/utils.rb 的代码,打印url看看:

莫非访问不了api.github.com  ?

看起来是有返回值的,而且是合法的json,继续看 /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/open-uri.rb 的代码,发现很可能是httpcode的问题:

发现http code为 422 , 而/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/open-uri.rb 遇到 422 是走异常逻辑的,如果能简单修改代码使其认为是正常似乎是可以的; 但是mac 不让修改/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/open-uri.rb , root账号也不行

回头看 /usr/local/Library/Homebrew/utils.rb ,发现如下逻辑:

export HOMEBREW_NO_GITHUB_API=1

问题解决

 

其实 spinx-build 是在生成man page的时候用到的,某些情况下,大可不必非要去生成man page

虚拟机镜像操作

软件包: libguestfs-tools

这里的 guestfish 挺不错的

  1. 查看镜像分区及其使用情况:
  2. 查看镜像中的文件信息
  3. copy 文件到镜像
  4. 查看镜像中的文件
  5. 查看镜像中的文件系统分区信息: virt-filesystems –long –parts –blkdevs -h -a CentOS-7-x86_64-GenericCloud-1708.raw

virt-resize:  –shrink  并不能让镜像文件变的更小(反而变大了)

virt-sparsify  可以使得一个镜像文件变成一个稀疏文件,对于发布、存储镜像很有必要

resolv.conf 之options都有啥

  1. 你没法通过options来禁用ipv6解析
  2. single-request: 用来指定分别执行A和AAAA解析;即,收到A记录解析的结果后在发送AAAA记录解析请求; 默认情况下,同时在一个连接上发送A和AAAA的解析,这样效率会高一倍;然而,有些dns server不能很好地处理这种请求方式,很可能不能正确地返回AAAA的响应,以至于请求会超时
  3. single-request-reopen:强制A和AAAA的解析在两个连接中处理(主要体现在连接的源端口不同)

参考:

http://man7.org/linux/man-pages/man5/resolv.conf.5.html

openstack dashboard之session timeout

文档中说在 /etc/openstack-dashboard/local_settings 中修改(或添加)SESSION_TIMEOUT 可以控制dashboard的过期时间,但是修改了怎么也不生效,后看代码发现:

dashboard登录后总是去keystone获取一个token的,token总有过期时间的,所以,dashboard的session过期时间就是自己定义的过期时间和token的过期时间取小的那个。

keystone 的token过期时间配置参考: /etc/keystone/kestone.conf

 

ceph 之osd 分类(class)

  1. ceph不能自动识别磁盘类型
  2. 设置osd分类前osd需要是未分类的,即:修改osd分类的做法是,先移除原有的分类,在添加新的分类:

     
  3. 操作osd分类使用的不是ceph osd crush class *
  4. 根据磁盘分类查看osd:

     
  5. 然后参考ceph osd crush rule 来创建自己的规则,如只存放在hdd上,或只存放在ssd上的规则,然后对pool设置响应的规则
  6. class 不需要预先创建:

    没有提供一个方法add class ssd, 也没看到一个方法可以del class ssd

 

参考: http://docs.ceph.com/docs/master/rados/operations/crush-map/

通过virsh创建基于lvm的pool

参考:

https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/virtualization_deployment_and_administration_guide/sect-lvm_based_storage_pools#sect-LVM_based_storage_pools-Creating_an_LVM_based_storage_pool_with_virsh

 

示例:

将一个img 磁盘文件导入kvm-pool (结果总是失败)

  1. 创建一个volume:
  2. 导入img文件:

    总是提示: 无法关闭卷ceph-3; 然后将无法从ceph-3启动虚拟机
  3. 使用新的volume启动虚拟机

成功的做法

  1. 定义一个ceph-3.xml

     
  2. 将centos7.3.img 放到 /var/lib/libvirt/images 下面,然后: