Jingh Blog

"志之所趋,无远弗届,穷山距海,不能限也"

如何构建OpenStack镜像

本文以制作CentOS7.2镜像为例,详细介绍手动制作OpenStack镜像详细步骤,解释每一步这么做的原因。镜像上传到OpenStack glance,支持以下几个功能: 支持密码注入功能(nova boot时通过--admin-pass参数指定设置初始密码) 支持根分区自动调整(根分区自动调整为flavor disk大小,而不是原始镜像分区大小) 支持动态修改密码(使用n...

Ceph Pool操作总结

Ceph Pool操作总结 一个ceph集群可以有多个pool,每个pool是逻辑上的隔离单位,不同的pool可以有完全不一样的数据处理方式,比如Replica Size(副本数)、Placement Groups、CRUSH Rules、快照、所属者等。 打印pool列表 ceph osd lspools 创建pool 通常在创建pool之前,需要覆盖默认的pg_num,官方推...

Docker跨主机通信实现与分析

手动gre实现以及docker overlay网络

前言 docker目前支持以下5种网络模式: bridge:此时docker引擎会创建一个veth对,一端连接到容器实例并命名为eth0,另一端连接到指定的网桥中(比如docker0),因此同在一个主机的容器实例由于连接在同一个网桥中,它们能够互相通信。容器创建时还会自动创建一条SNAT规则,用于容器与外部通信时。如果用户使用了-p或者-Pe端口端口,还会创建对应的端口映射规则。 ...

Linux常用网络工具总结

总结了这几年使用过的网络工具

本文整理了在实践过程中使用的Linux网络工具,这些工具提供的功能非常强大,我们平时使用的只是冰山一角,比如lsof、ip、tcpdump、iptables等。本文不会深入研究这些命令的强大用法,因为每个命令都足以写一篇文章,本文只是简单地介绍并辅以几个简单demo实例,旨在大脑中留个印象,平时遇到问题时能够快速搜索出这些工具,利用强大的man工具,提供一定的思路解决问题。 ping 这...

「 Intermediate Python 」 上下文管理器(Context managers)

"它是一本开脑洞的书。无论你是Python初学者,还是Python高手,它显现给你的永远是Python里最美好的事物。"

本书的原文原址intermediatePython 上下文管理器(Context managers) 上下文管理器允许你在有需要的时候,精确地分配和释放资源。 使用上下文管理器最广泛的案例就是with语句了。 想象下你有两个需要结对执行的相关操作,然后还要在它们中间放置一段代码。 上下文管理器就是专门让你做这种事情的。举个例子: with open('some_file', ...

「 Intermediate Python 」 函数缓存 (Function caching)

"它是一本开脑洞的书。无论你是Python初学者,还是Python高手,它显现给你的永远是Python里最美好的事物。"

本书的原文原址intermediatePython 函数缓存 (Function caching) 函数缓存允许我们将一个函数对于给定参数的返回值缓存起来。 当一个I/O密集的函数被频繁使用相同的参数调用的时候,函数缓存可以节约时间。 在Python 3.2版本以前我们只有写一个自定义的实现。在Python 3.2以后版本,有个lru_cache的装饰器,允许我们将一个函数的返回...

「 Intermediate Python 」 协程

"它是一本开脑洞的书。无论你是Python初学者,还是Python高手,它显现给你的永远是Python里最美好的事物。"

本书的原文原址intermediatePython 协程 Python中的协程和生成器很相似但又稍有不同。主要区别在于: 生成器是数据的生产者 协程则是数据的消费者 首先我们先来回顾下生成器的创建过程。我们可以这样去创建一个生成器: def fib(): a, b = 0, 1 while True: ...

「 Intermediate Python 」 Python2+和Python3+ 兼容

"它是一本开脑洞的书。无论你是Python初学者,还是Python高手,它显现给你的永远是Python里最美好的事物。"

本书的原文原址intermediatePython 目标Python2+3 很多时候你可能希望你开发的程序能够同时兼容Python2+和Python3+。 试想你有一个非常出名的Python模块被很多开发者使用着,但并不是所有人都只使用Python2或者Python3。这时候你有两个办法。第一个办法是开发两个模块,针对Python2一个,针对Python3一个。还有一个办法就是...

「 Intermediate Python 」 `open`函数

"它是一本开脑洞的书。无论你是Python初学者,还是Python高手,它显现给你的永远是Python里最美好的事物。"

本书的原文原址intermediatePython open函数 open 函数可以打开一个文件。超级简单吧?大多数时候,我们看到它这样被使用: f = open('photo.jpg', 'r+') jpgdata = f.read() f.close() 我现在写这篇文章的原因,是大部分时间我看到open被这样使用。有三个错误存在于上面的代码中。你能把它们全指出来吗?如不...

「 Intermediate Python 」 使用C扩展

"它是一本开脑洞的书。无论你是Python初学者,还是Python高手,它显现给你的永远是Python里最美好的事物。"

本书的原文原址intermediatePython 使用C扩展 CPython还为开发者实现了一个有趣的特性,使用Python可以轻松调用C代码 开发者有三种方法可以在自己的Python代码中来调用C编写的函数-ctypes,SWIG,Python/C API。每种方式也都有各自的利弊。 首先,我们要明确为什么要在Python中调用C? 常见原因如下: 你要提升代码的运...