Sichuanren's Blog

November 12, 2014

Hugepages for KVM

Filed under: KVM, Virtualization — sichuanren @ 8:52 pm
1) teach MAKEDEV how to “create the directory” /dev/hugepages on boot. Actually it is creating an additional /dev/null device at /dev/hugepages/null, but it should be harmless to have multiple “null” (major 1, minor 3) devices and also harmless to mount on top of it.
echo 'c $ALLWRITE 1 3 1 1 hugepages/null' > /etc/makedev.d/01hugepages
2) tell udev to create it on boot if needed:
echo 'hugepages/null' > /etc/udev/makedev.d/52-hugepages.nodes
3) tell udev what the right permissions are for it:
echo 'KERNEL=="hugepages*", OWNER="root", GROUP="root", MODE="0775"' > /etc/udev/rules.d/52-hugepages.rules
4) Under CentOS/RHEL run “huge_page_setup_helper.py” to get your hugepages setup
5) Set the hugetlbfs to be mounted on boot:
echo 'hugetlbfs /dev/hugepages hugetlbfs defaults 0 0' >> /etc/fstab
That’s it! After a reboot, you can check that hugepages are setup with “sysctl vm.nr_hugepages” and “grep -i huge /proc/meminfo” and check that hugetlbfs is mounted with “mount | grep huge“.

Check /proc/meminfo once your KVM guests start to make sure the number of free pages decreases. If not confirm your guest’s XML file has “<memoryBacking><hugepages/></memoryBacking>” below the “<currentmemory>” section and that they have “-mem-prealloc -mem-path /dev/hugepages/libvirt/qemu” in the qemu-kvm command line (it should be auto-set by libvirt).

(from http://blog.tonns.org/2010/08/hugepages-and-kvm.html)

Firefox OS 技术工具

Filed under: Information — sichuanren @ 3:32 pm

Mozilla是一个科技团体,它努力维护和改善Firefox的功能,让我们来看看他们目前研究的一些技术:

WebGL:是一项在网页浏览器体现3D画面的技术,通过硬件加速游戏。硬件加速不仅提供流畅的动画,也能降低电池的消耗,这种技术一开始应用于Firefox,而现在也应用于Chrome, IE, 苹果的 Safari 以及Opera 。

WebRTC:是 一个支持网页浏览器进行实时语音对话或视频对话的技术,Chrome,Opera和Firefox都拥有这种技术,而Safari和IE却不为所动——尽 管IE团队的ORTC技术正面临关闭的危险,基于WebRTC,不用担心聊天的对象只是一个Facebook朋友或者只是陌生网友,你都可以在和别人视频 聊天的时候向他们发送网址。这种技术同样英语用需要数据通信的多人游戏当中。

asm.js:浏览器程序是基于 JavaScript和asm.js开发的,asm.js是JavaScript的一个子集,对于那些游戏开发商来说,将它应用于Web可以达到物理引擎 同样的效果,这也是虚幻公司所做的。asm.js可以被用来作为一个底层的、高效的编译器目标语言,虽然其他浏览器制造商不一定像Firefox一样支持 asm.js,但是他们也正朝这个方向靠近。

SpeechRTC:Mozilla受到来自外界的鼓舞,并且来自巴西的Andre Natal给Firefox OS带来了语音识别技术。这种服务类似于谷歌搜索或者Siri。Mozilla希望将SpeechRTC标准化。

多进程浏览技术:2008年Chrome推出多进程浏览技术,Safari和IE紧随其后,火狐后来也应用了这一技术。能使每一个打开的页面都可以运行在各自独立的进程中,为浏览器的安全性和稳定性增色不少,即使其中的一个页面因故出错,也不会影响到其它页面和整个浏览器的运行状况。

Daala:由 于H.264在市场上占据着主导地位,Mozilla不得不使用目前市场上支持H.264的技术,但是该技术是有专利权的,这与MozillaWeb开源 的思想相违背,虽然目前Daala才刚刚进入市场,并且将会比H.264和HEVC/H.264表现的更好。但是Mozilla希望在不久的未来,人们会 接受这个技术。

Andreas Gal代替了 Brendan Eich,并且继续做JavaScript性能改进的工作,后来参与B2G项目提供和推广Firefox OS平台。虽然Brendan Eich的离开是一个大问题,但是由于CTO工作依赖于许多人,这使得工作得以连续,不至于中断。

Andreas Gal说:“虽然目前我们的压力还是很巨大的,但是在Mozilla还是有很多人才我可以依靠,我们的身边还有很多很多技术专家。”

November 9, 2014

小我对圆满的追求

Filed under: thinking — sichuanren @ 1:20 am

与小我思维不可分离的情绪痛苦的另一种表现,是 一种探深的缺乏感或不完整感。有些人意识到了这一点,而有些人则没有。
如果意识到了这点,这种感觉就是不安、 无价值感或自己不够好的感觉。没有意识到这点的人,就会间接地感觉到强烈的欲望和需求。不管是以上哪种情况,人们通常会不由自主地去追求一种自我的满足感和可供认同的事物, 以便弥补他们内在感到的虚。这样他们拼命追求财富、 成功、 权力、 名望或者一种特殊的关系,这样他们能自我感觉更好一些, 感觉更圆满一点。 但是,即使当他拥有了这些东西, 这种内在的空虚仍然存在, 并且还是个无底洞。 然后,他们真正地陷人麻烦之中, 因为他们不能再逃避了. 当然,他们还是可以逃避, 但是逃避将变得更加困难。

只要这种小我思维控制着你的生活,你就不会真正得到安逸;即使你获得你所期望的东西,你的理想也能实现,你还是不会处于平静的状态,即使有,也是短暂的。由干小我是一种衍生出来的自我感觉, 所以它需要认同于外在事物。 它需要不断地被维护和喂养。最常见的自我认同与财产、 工作、 社会地位、 名望、 知识和教育、 外表、 持殊技能、 人际关系、 个人和家族历史、宗教
信仰、 种族等其他集体认同有关。所有这些都不是真正的你。
你觉得很震惊吗? 或是知道这些反而让你感到松了一口气?你迟早会放弃所有这一切的。或许你会觉得这一切难以置信,但
你迟早会知道有关它的真理。至少当你惑到死亡即将来临时, 你就会知道它。 因为死亡来临时, 会带走所有不能代表你的东西。生命的秘密在于: “在你死亡之前死亡” ——并发现原来根本没有死亡。

November 6, 2014

5个解决Docker网络问题的项目

Filed under: Docker, Virtualization — sichuanren @ 6:47 pm

Docker 是一个开源的应用容器引擎,它可以让开发者将自己的应用以及应用所依赖的内容打包到一个可移植的容器中,然后将该容器发布到任何流行的 Linux 机器上,也可以实现虚拟化。Docker 彻底释放了虚拟化的威力,它让应用的分发、部署和管理都变得前所未有的高效和轻松,凭借着自己出众的能力,Docker现在已经成为目前IT界创业者和创 新者的宠儿。那么Docker是否已经足够完美了呢?答案当然是否定的,对于管理者和开发人员来说网络依然是Docker的一个痛点,如何管理 Docker容器之间的交互和网络一直都充满了挑战。

为了解决网络的问题,有很多公司都开发了各自的产品以帮助开发者更方便地使用Docker。Serdar Yegulalp最近在InfoWorld上分享了一篇文章,介绍了这些项目中最重要的5个,包括Weave、Kubernetes、CoreOS, Flannel、Pipework以及SocketPlane,同时他认为这其中的部分项目将来可能会成为Docker的组成部分。下面就让我们来了解一下这5个项目。

Weave是由Zett.io公司开发的,它能够创建一个虚拟网络来连接部署在多台主机上的Docker容器。通过Weave所有的 容器就像被接入了同一个网络交换机,那些使用网络的应用程序不必去配置端口映射和链接等信息。外部设备能够访问Weave网络上的应用程序容器所提供的服 务,同时已有的内部系统也能够暴露到应用程序容器上。Weave能够穿透防火墙并运行在部分连接的网络上。另外,Weave的通信支持加密,所以用户可以 从一个不受信任的网络连接到主机。如果你想了解更多与Weave相关的信息,或者查看相关源码,那么可以点击这里

Kubernetes是由Google推出的针对容器管理和编排的开源项目,它让用户能够在跨容器主机集群的情况下轻松地管理、监 测、控制容器化应用部署。Kubernete有一个特殊的与SDN非常相似的网络化概念:通过一个服务代理创建一个可以分配给任意数目容器的IP地址,前 端的应用程序或使用该服务的用户仅通过这一IP地址调用服务,不需要关心其他的细节。这种代理方案有点SDN的味道,但是它并不是构建在典型的SDN的第 2-3层机制之上。如果对此感兴趣可以阅读一下Craig Matsumoto在sdncentral上发表的这篇文章,或者点此查看源码。

Flannel之前的名字是Rudder, 它是由CoreOS团队针对Kubernetes设计的一个覆盖网络工具,其目的在于帮助每一个使用 Kuberentes 的 CoreOS 主机拥有一个完整的子网。Kubernetes 会为每一个 POD 分配一个独立的 IP 地址,这样便于同一个 POD 中的Containers 彼此连接,而之前的 CoreOS 并不具备这种能力。为了解决这一问题,Flannel 通过在集群中创建一个覆盖网络为主机设定一个子网。点此查看该项目的源码。

Pipework是由Docker的一个工程师设计的解决方案,它让容器能够在“任意复杂的场景”下进行连接。PipeworkDocker的一个网络功能增强插件,它使用了cgroups和namespacpace。点此查看该项目的源码。

SocketPlane目前仅停留在将“SDN带给Docker”的口号上,基本上没有实质性的工作。该项目的想法是使用和部署 Docker一样的devops工具管理容器的虚拟化网络,同时为Docker构建一个相当于OpenDaylight/Open vSwitch的产品。听起来非常有前途,但是在2015年一季度之前我们无法看到任何产品。

对于以上项目,Serdar Yegulalp在自己的文章中也发表了针对性的观点,他认为Weave是最好的起点,因为它通过一种直截了当的方法解决了当前大部分的问题。 Kubernetes也是一个比较好的起点,但是真要用起来可能并不是那么简单。而Flannel则最好是和CoreOS一起使用,同时它依赖于 Kubernetes。对于Pipework,Serdar Yegulalp认为它是一个临时的设计方案,很有可能会被抛弃。最后的SocketPlane则基本上是看看就行了,不要期望太高。

November 3, 2014

New programming laungauge

Filed under: Information — sichuanren @ 2:05 am

1. D programming language

2. Dart (javascript/java)

3. Ceylon

4. Scala

November 1, 2014

The Power of Now

Filed under: thinking — sichuanren @ 5:54 pm

所以在未开悟的、与大脑认同的状态,我们称为“喜悦”的东西,只不过是痛苦和欢乐轮流交替时短暂的欢乐而已。欢乐总是衍生于你之外的事物,而喜悦是由内而生的。今天让你喜悦的事情,明天可能会让你痛苦,或者它将会离你而去,所以一旦失去它,你将会感到痛苦。
人类的很大一部分痛苦是没有必要的。只要让未被觉察的思维控制着你的生活,痛苦就会自然而然地产生。痛苦的程度取决于你对当下的抗拒程度以及对思维的认同程度。思维通常否认当下,并试图逃离当下。换句话说,你对思维认同的程度越高,你就会越发感到痛苦。或者可以这样说:你对当下的情况接受得越多,你受的苦就越少,对小我的认同也越少。
将注意力集中在你内心的感受上,了解到这就是痛苦之身并接受它的存在;别去想它,别让你的感受变成了大脑和思维,不要去判断或分析它,别在其中寻找你自己的身份认同;保持临在,继续观察你的内在;不但决知到你情绪上的痛苦,更要觉察那个沉默的观察者。这就是当下的力量,这就是你自己有意识的临在的力量。

« Newer Posts

Blog at WordPress.com.