QEMU3 - 使用ceph来存储QEMU镜像
ceph简介Ceph是一个PB级别的分布式软件定义存储系统,为用户提供了块存储、对象存储以及符合POSIX标准的文件系统接口。目前,Ceph已经成为Openstack最受欢迎的后端存储系统。下图为ceph的架构图。
RADOS本身是一个对象存储系统,实现了ceph的核心功能。Librados是ceph提供给各种编程语言的接口。RADOSGW,RBD,CEPH FS分别为用户提供了对象存储、块存储及文件系统的功能。Ceph集群及客户端的安装配置请参考Ceph官方文档。
使用Ceph来存储QEMU镜像QEMU会假定ceph配置文件存放在默认位置/etc/ceph/$cluster.conf,也会使用client.admin作为默认的ceph用户。如果要指定其他的配置文件或者用户,可以在ceph RBD的选项中添加conf=/home/ceph.conf或者id=admin选项。qemu-img使用ceph块存储RBD时,需要使用下面的格式:
qemu-img {command} [options] rbd:{pool-name}/{imag ...
顺序存储线性表的实现
最近复习数据结构,写了一个顺序存储的线性表,代码粘在这里:)
代码下载:git@github.com:Wang-Sen/algorithm.git
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161/* * Simple array implementation. */#include ...
在fedora下使用搜狗拼音输入法
Linux下的拼音输入法实在是不敢恭维,还好有人把搜狗拼音输入法制作成了RPM包.安装此rpm包就可以在Linux下面使用搜狗拼音输入法及其字库了.
第一步,下载RPM包.
百度网盘地址:http://pan.baidu.com/s/1bpblFoN
第二步,安装RPM包.
$sudo yum install fcitx-sogoupinyin-0.0.4-1.fc20.x86_64.rpm //注意输入正确的路径
第三步,卸载ibus.
$sudo yum remove ibus
第四步,设置fcitx开机自动启动.
$sudo yum install gnome-tweak-tool
$gnome-tweak-tool //在开机启动一项中添加fcitx即可
第五步,重启gnome
$gnome-session-quit
最后,使用Ctrl+space愉快的玩耍.
使用jQuery Validation插件来验证表单
jQuery Validation是一个用于验证表单的jQuery插件,简单易用,已经包含了16种内置的验证规则.Github上也有更多的验证规则可以使用.这都不是重点,重点是你可以轻松的定制自己的规则.
内置规则:
required – Makes the element required.
remote – Requests a resource to check the element for validity.
minlength – Makes the element require a given minimum length.
maxlength – Makes the element require a given maximum length.
rangelength – Makes the element require a given value range.
min – Makes the element require a given minimum.
max – Makes the element require a given ...
迁移宁强在线步骤
配置ssh#mkdir /root/.ssh && cp id_rsa* /root/.ssh/
下载配置脚本#git clone git@git.oschina.net:wangsen/auto_conf_fc.git
安装基础软件#cd auto_conf_fc && bash -x ./conf.sh
安装web软件#yum install net-tools httpd python-django
#yum install python python-pip python-devel python-wsgi mod_wsgi mariadb-server python-mysql mariadb-devel.x86_64 MySQL-python python-html5lib
克隆网站代码#cd /var/www/html && git clone git@git.oschina.net:wangsen/TownInfo-.git
#mvTo ...
JQuery 摘要
选择符与遍历
$(): $函数接受css选择符作为参数,充当一个工厂函数,返回对应元素的JQuery对象。
3种基本的选择符:
标签名 $(‘p’)
ID $(‘#myid’)
类 $(‘.myClass’)
子元素组合符>: $(‘#myid > li’)选择id为myid的元素的所有列表项(li).
否定式伪类: $(‘#myid li:not(.myClass)’)选择id为myid的元素中不属于myClass类的所有列表项(li).
属性选择符$(‘img[alt]‘): 选择所有带有alt属性的img元素.
属性选择符+类正则匹配:
$(‘a[href^=”mailto:”]‘): 选择所有URL以mailto:开头的超链接.
$(‘a[href$=”.pdf”]‘): 选择所有URL以.pdf结尾的超链接.
$(‘a[href*=”rose”]‘): 选择所有URL中包含rose的超链接.
自定义选择符:
$(‘li:eq(1)’): 选择第二个列表项
$(‘li:odd’): 选择奇数的列表项
$(‘li:even’ ...
使用gerrit作为代码评审工具
需求描述其实作为项目代码的maintainer,一直习惯于mailing list + git的代码评审及管理,无奈公司主推敏捷+devops,老板让改用gerrit。硬着头皮切换到gerrit,在这里记录下安装配置的过程及踩过的许多坑,以便网友们以后配置gerrit留作参考。
需求其实很简单,我们项目一直使用公司内部一个类似于github的代码托管网站来托管项目代码,使用邮件列表来评审代码。代码通过评审通过后,我再将patch push到代码托管服务器上去。整个开发流程如下图所示:
现在需要切换到gerrit来作为代码评审工具,以便于能够和jenkins集成,搭建一个集开发、构建、测试、部署为一体的devops系统,结构如下图所示。本文只关注gerrit的搭建。
Gerrit简介安装步骤1 . 安装Java.
网上有很多安装java的博客和文章,因此在这里不再赘述,可以参考下面这篇文章:
Linux下安装java
2 . 给Gerrit单独创建一个账户
#useradd gerrit
#passwd gerrit
#su gerrit
3 . 下载gerrit
gerrit是在go ...
apache配置https服务
1、创建自己签名的证书
#创建CA签名的证书,需要用到openssl
yum install openssl
#创建key
openssl genrsa -des3 -out server.key 1024
#创建csr(证书签发请求)
openssl req -new -key server.key -out server.csr
#生成自己签名的证书
openssl x509 -req -in server.csr -signkey server.key -out server.crt
#安装证书
cp server.crt /etc/ssl/certs
cp server.key /etc/ssl/private
2、编辑ssl配置文件
vim /etc/httpd/conf.d/ssl.conf
SSLEngine on
SSLCertificateFile /etc/ssl/certs/server.crt
SSLCertificateKeyFile /etc/ssl/private/server.key
...
mysql数据库及django用户名启用中文的方法
mysql数据库启用中文
在mysql的配置文件/etc/my.cnf的[mysqld]下加入
character_set_server=utf8
Django启用中文用户名
Django默认只能以字母、数字、下划线组成用户名,修改检验用户名的正则表达式可以绕过这一规则:
/usr/lib/python2.7/site-packages/django/contrib/auth/models.py:
class AbstractUser(AbstractBaseUser, PermissionsMixin):
...
validators.RegexValidator(re.compile('^[\w.@+-]+$'), _('Enter a valid username.'), 'invalid')
...
把正则表达式从^[\w.@+-]+$ 改为 ^[\S.@+-]+$即可
基于Jenkins和Koji的代码管理及构建系统
Summary
Currently, we KVM team are maintaining the code repository of the virtualization software(such as QEMU, Libvirt, Kimchi, Linux, etc.) for PowerKVM development team and delivering corresponding RPM packages. We collect patches from mailing list and build update RPM packages every workday. The work load is extremely heavy if we manually download the patches from mailing list, apply them to the repository, and build RPM packages covering all the supported platforms.
This environment, based ...