广东1区(GD1)上线

广东1区(GD1)于4月3日完成部署,根据北京1区(PEK1)长达一年的开发与生产运营,我们对硬件、网络设备、系统底层实现等各方面进行了调整,以确保新区站在旧区的肩膀上,更上一层楼。

1. 硬件

  • CPU 主频从 2.0GHz 和 2.1GHz 提升至 2.6GHz。
  • 内存频率从 1333MHz 提升至 1600MHz。
  • 接入层网络依然保持 10Gbps 速度,汇聚层则提升至 40Gbps,核心设备间提升至 80Gbps,以更好的收敛比来确保用户在云端的资源间网络性能与质量。

2. IOPS

GD1 性能型 GD1 容量型
4k随机读 85000 9200
4k随机写 6900 4100
64k顺序读 71000 575
64k顺序写 2000 575

    备注:

  • 主机默认携带的系统磁盘的数据与性能型硬盘相同,故上表没有列出。
  • 上表数据使用 fio 测试得出,给出 fio.conf 供参考。测试指令为:
    fio fio.conf
  • 另一个常用的测试顺序读写的指令为:
    dd if=/dev/zero of=/path/test.img bs=4096 count=512K conv=fdatasync

3. 性能型硬盘尺寸

为了满足大家对性能型硬盘更大尺寸的需求,单个性能型硬盘由 500GB 提升至 1TB。

4. 虚拟设备之间内网速度

随着客户在青云里部署的设备规模越来越大,处理的数据越来越多,我们将云端用户的设备(包括主机、路由器、交换机等)之间的标准限速由 320Mbps 提升至 1Gbps。

P.S., 如果有更高的内网速度需求,请与我们联系。

5. 负载均衡器能力

根据负载均衡器上线数月以来的用户实际使用与反馈,我们新增了三种不同处理能力的配置,以便满足不同负载量的应用需求。按最大并发连接数(concurrent connections),目前共有四个档位:

  • 5,000
  • 20,000
  • 40,000
  • 100,000

6. 价格

QingCloud 的定价策略是随着规模的扩大、总体均摊成本的变低,我们会持续下调价格。此次广东1区的上线,虽然硬件规格有显著上调,但是由于规模扩大了两倍,单位成本依然有所下降,所以,此新区的价格相对北京1区有所调整:

  • 内存价格下调10%
  • 块存储(包括性能型和容量型)价格下调20%
  • 备份价格下调20%

使用愉快。

Docker 初探

本文作者是 QingCloud 用户 roger

对 Docker 好奇很久了,今天最终自己动手尝试一下,系统要求 Ubuntu Server 12.04 LTS 64bit,本想用本地的 VirtualBox 但不支持 64bit(不知道为什么),那就用云服务了,QingCloud 的控制页面确实简洁,很容易使用。

1. 在 QingCloud 中创建测试机器

  • 创建一个 Ubuntu 12.04.2 主机(映像 ID 为 precisex64a)
  • 申请一个公网 IP、并捆绑至该主机
  • 创建一个 SSH 密钥、并捆绑至该主机

以下操作需要 root 权限,如果你使用的帐号不是 root,那么需要 sudo.

2. 安装 Docker

刷新:
apt-get update
apt-get install python-software-properties

添加 PPA:
add-apt-repository ppa:dotcloud/lxc-docker
apt-get update

安装:
apt-get install lxc-docker

3. 下载两个 image (境外网络可能比较慢、甚至中途挂,多试几次,或挂后台)
docker pull ivarvong/redis
docker pull kstaken/apache2

4. 启容器中的服务
docker run -d -p 6379 ivarvong/redis /usr/bin/redis-server
docker run -d -p 80:80 kstaken/apache2

5. 查看运行的容器
docker ps
记录容器的 IP 地址
docker inspect 08821c6ffb4a

6. 为连接 redis 安装一下 cli
apt-get install redis-server

7. 连接 redis 测试一下
redis-cli -p 6379 -h 172.17.0.17
set foo bar
get foo
exit

8, 看看 apache 是否起来
curl localhost

如果可用那么两个容器都正常运行了。

好了,总结一下 Docker 的常用命令:

docker search
用于搜索是否有可用的images,实际从index.docker.io查找,放回查询结果
例如:
docker search apache
docker1
docker pull
从 index.docker.io 下载一个 image ,下载过程会有好几个 fs 层,因为 Docker 生成的容器是可以不断修改保存的,每一次的保存生成fs,一个完整的容器可以是多次的 fs 的叠加。

docker inspect
查看容器的信息,实际是lxc容器的配置参数
docker2
docker run
在容器中运行一个命令,如果容器中有常驻任务会直接启动容器本身

docker run 有诸多的选项,介绍常用的必要选项
-e 设置容器的运行env环境变量
-v 映射服务的一个目录到容器中
-p 容器对服务器暴露的端口
-c cpu使用的权重
-m 限制容器的内存使用量
-i 标准输出到当前term
-t 分配一个tty
一般情况 -i -t 一起使用将容器的输出到term
参考截图:
docker3
例如:
docker run -d -p 80:80 -v /tmp:/var/www kstaken/apache2

将系统的80端口映射到容器的80端口,访问系统的 localhsot 就访问到容器的 apache 服务, apache 会读取 /tmp/index.html 访问
docker4
docker ps -a
列出所有的容器,包括运行的和已经停止的。
docker5
docker rm
删除容器
如果容器不在需要可以用删除容器操作
docker6
docker start
开启停止的容器

docker stop
停止运行的容器
docker7
docker rmi
删除 image

docker info
查看系统的容器和 images

docker commit
修改容器后提交保持

docker push
将 image 推送到 index.docker.io 保持

docker build
用 Dockerfile 文件创建一个 image,具体的 Dockerfile 语法不在介绍,很简单参考官网就可以了。

后续:
Docker 确实可以快速构建一个容器,很快的构建一个 PaaS 容器,对不同的环境使用不同的 Docker 容器即可。不过呢Docker 必须用 root 权限运行,Docker 虽然可以控制容器映射到系统的目录,但容器写服务输出的文件依然是隶属root(非 root 用户无法运行 Docker)。

如果对同一台服务上的少数应用需要控制资源的直接使用 cgroup 是较好的选择,可以按用户或用户组控制系统资源。如果服务需要指出多种环境,那么 Docker 就是最好的。

推荐参考:
http://dockerbook.com/TheDockerBook_sample.pdf