坚实的幻想

ON A CLEAR DISK YOU CAN SEEK FOREVER

SR-IOV 虚拟化

概念 SR-IOV(Single Root Input/Output Virtualization) 是一项硬件虚拟化技术,它的目的是将一个 PCIe 设备(例如网卡),虚拟成多个互相隔离的设备,提供给不同的使用者(例如虚拟机)使用。使用 SR-IOV 的设备包含如下组件: 一个 PF(Physical Function),PF 具备 PCIe 设备的所有功能,可以将 PF 等同于...

Python bottle 源码解析

简介 Bottle 是一个轻量级的 Python Web 框架,它的代码量只有 4300 行(为了突出其精简性,所有代码放在了一个文件中)。但是麻雀虽小,五脏俱全,Bottle 提供了一个 Web 框架有必须的基本功能,如: 路由,支持动态的 URL 路由 模板,内置了模板功能,同时支持 mako, jinja2 和 cheetah 表单,文件上传,cookies,head...

Python WSGI 初探

WSGI 是什么 在构建 Web 应用时,通常会有 Web Server 和 Application Server 两种角色。其中 Web Server 主要负责接受来自用户的请求,解析 HTTP 协议,并将请求转发给 Application Server,Application Server 主要负责处理用户的请求,并将处理的结果返回给 Web Server,最终 Web Server ...

Galera Cluster Essential Guide

The True Multi-master Cluster

数据库的高可用 在设计一个高可用架构时,各种不通类型的组件高可用的方案往往不同,其中往往可以大致分为: 有状态服务 无状态服务 其中又以有状态服务的高可用最难实现,而 MySQL 数据库的高可用则是这些服务中最为棘手的一个问题。数据库通常作为应用程序的数据存储服务,要实现数据库的高可用,必然要使用的技术就是数据的复制。对于 MySQL 来说,有这些复制方式: 主从复...

RabbitMQ 和 oslo.messaging

RabbitMQ 是一个消息队列系统,它实现了 AMQP 协议。在 OpenStack 中,RabbitMQ 被广泛的作为 RPC 中间件使用,在 OpenStack 核心项目如 Nova, Cinder, Neutron 等服务中,内部组件的 RPC 调用都是通过消息队列完成的,而 RabbitMQ 是 OpenStack 场景下使用最为广泛的消息队列组件。 RabbitMQ 本质上是一...

Linux中断和中断处理

众所周知,处理器的速度跟外围硬件设备的速度往往不在一个数量级上,因此,如果内核采取让处理器向硬件发出一个请求,然后专门等待回应的办法,显然差强人意。 轮询(polling)可能会是一种解决办法。它可以让内核定期对设备的状态进行查询,然后做出相应的处理。不过这种方法很可能会让内核做不少无用功,因为轮询总会周期性的重复执行。更好的办法是提供一种机制,让硬件在需要的时候再向内核发出信号。这就是中...

究极shell

Finally, a command line shell for the 90s

池建强老师曾经写过一篇终极 shell,为生活在水生火热中的 UNIX/Linux 用户普及了 zsh 的使用,池老师称之为「终极shell」。我想说的是,zsh 的确好用,但是逼格还不够,目前使用过最炫酷的 shell 非 fish shell 莫属,史称「究极shell」,实乃居家旅行装X吹牛的必备良器。 fish 的特性有: 开箱即用,不需要繁琐的配置 自动补全提示,杀手...

无后为大

胆怯的智慧还在犹豫的时候,勇敢的无知已经行动了 今天看到一个帖子,《有没有人不想要孩子是因为你自己还不确定存在本身的意义?》,从迈入社会开始,我就时常思考要不要孩子的问题,之前阅读过关军老师的《无后为大》,让我对这个问题有了更理性的认识,摘录一些片段在这篇日志里。 在周围人眼里,他们不能理解和容忍有人在这么神圣人生使命面前的迟疑,生儿育女这似乎是人这一辈子必须完成的使命之一。他们...

OpenSSL SAN 证书

使用 OpenSSL 制作一个包含 SAN(Subject Alternative Name)的证书

什么是 SAN SAN(Subject Alternative Name) 是 SSL 标准 x509 中定义的一个扩展。使用了 SAN 字段的 SSL 证书,可以扩展此证书支持的域名,使得一个证书可以支持多个不同域名的解析。 先来看一看 Google 是怎样使用 SAN 证书的,下面是 Youtube 网站的证书信息: 这里可以看到这张证书的 Common Name 字段是 *....

负载均衡集群 LVS 详解

Loadbalancer & LVS

当服务器遇到性能瓶颈需要进行扩展时,一般来说有两种解决思路:Scale-up 和 Scale out,也称作垂直扩展和水平扩展。 垂直扩展 通常指增加 CPU 和内存,购买昂贵的高性能服务器 优点: 耗电量相比使用多台服务器要少 实施简单 缺点 价格太昂贵 由于资源的争用,服务器性能的增长会越来越小 有很大的硬件故障导致服务不可用的风险 受限制于供应...