Posts Tagged Linux
Ubuntu上KVM虚拟化的部署
这个KVM跟控制台切换器之类的东西一点关系没有,KVM全称Kernel-based Virtual Machine,是基于Linux核心的虚拟机。之前曾经写过基于XEN的虚拟化,最终linux世界还是没有选择XEN。KVM被正式导入Linux是在2007年的2.6.20核心上,以替代XEN,不过相对XEN来说,KVM要求CPU硬件上支持虚拟化技术,即Intel-vt或者AMD-v的支持。这对于2008年之后的机器来说几乎是标配的。对于这一个时期的CPU都一个劲的堆核心,内存也空前的便宜,硬盘也逐步到了320G起板的水平,可以大胆的玩虚拟机了!
再此之前,还是先确认系统的CPU是否支持虚拟化:
#egrep ‘(vmx|svm)’ /proc/cpuinfo
应该有返回,如果没有返回,且确认您的CPU支持虚拟化的话,建议去看看BIOS设置,大多数的主板都支持关闭此技术的。
从Redis的数据丢失说起
碰到一个悲催的事情:一台Redis服务器,4核,16G内存且没有任何硬件上的问题。持续高压运行了大约3个月,保存了大约14G的数据,设置了比较完备的Save参数。而就是这台主机,在一次重起之后,丢失了大量的数据,14G的数据最终只恢复了几百兆而已。
正常情况下,像Redis这样定期回写磁盘的内存数据库,丢失几个数据也是在情理之中,可超过80%数据丢失率实在太离谱。排除了误操作的可能性之后,开始寻找原因。
Linux的CPU调速器
都说Android手机的耗电和发热是与生俱来的,作为一个Android用户,我也深受其苦。于是刷了一个非官方的固件——Cyanogenmod。既然说是非官固件,总有特别的地方,在省电和性能的均衡方面,CM特地的设置了一个“调速器”的选项。Android本身就是一个Linux的内核,调速器的设置本身就是Linux内核中继承而来的。
使用linux的/dev/shm
挖掘一个很久之前的设想,06年的,之前的想法是用tmpfs,tmpfs是RAM和磁盘swap的混杂机制,大部分的情况是优先使用内存空间,尽管本质上是非持久存储,但性能上远不是磁盘甚至固态硬盘所能企及的。而且现在是内存空前便宜的时代,类似的方案例如memcache等,变得更有价值了。
默认的Linux发行版中的内核配置都会开启tmpfs,映射到了/dev/下的shm目录。可以通过df 命令查看结果如下:
Filesystem Size Used Avail Use% Mounted on /dev/sda1 146G 14G 125G 10% / varrun 501M 84K 501M 1% /var/run varlock 501M 0 501M 0% /var/lock udev 501M 32K 501M 1% /dev devshm 501M 0 501M 0% /dev/shm
posix的特性——fork
记得之前曾经在一段Python中介绍过python的mulitprocess模块在windows的不兼容。其中提及了linux/Unix特有的fork方式,而windows无法实现导致的死循环。当时只是提到了一下,重点不同的关系,没有深究。
fork,顾名思义就是一把叉子,或者专业一点叫做复制叉。作为sys/type.h的一个函数,系统在每次调用fork()之后,将会以此为分叉,对进程本身进行复制,新的进程和旧进程有近乎完全一致的cpu时间和内存寄存器。
Linux 3
最近Linux更新到了3.x的版本,彻底抛弃了2.x。赶着这波热乎劲,把系统内核升级到了3.0.2。贴个uname -a炫耀下:
Linux www 3.0.13.0.1 #2 SMP Wed Aug 17 16:05:25 CST 2011 x86_64 x86_64 x86_64 GNU/Linux
分布式文件系统Moose FS的部署
近期随着云概念的热炒,什么都分布式。所谓分布式的文件系统就是把若干机器上的磁盘空间统一维护,成为一个逻辑上的独立空间,当然,还有对应的容错和压力分散解决方案。
这些天在研究分布式存储的东西,测试了比较出名的几个分布式文件系统。首先是淘宝的tfs,国人出品应该支持了,谁知TFS的支持库实在不敢恭维,换了几种操作系统,最终才在suse上安装成功。可作为一个绑死操作系统的应用,风险太大。接着是MogileFS,MogileFS是基于perl的,在安装了一系列的perl依赖包之后,MogileFS安装的很顺利,性能也能达到要求,问题就是在于我们实在不愿意去维护一个perl环境。最后剩下了MooseFS。
定制deb安装包
选择一个合适的Linux发行版的重要因素就是是否有足够丰富的软件以及软件的维护是否方便。对于正常情况下的使用,Ubuntu继承自Debian系的deb已经可以满足,部分情况下还是无法摆脱需要编译安装的情况。对于有点洁癖的管理员,或者需要大规模部署的情况,每台机器的编译显然不现实,于是就需要定制deb包。
本文以Ubuntu下的操作为例,同样适用于Debian。
LAMP的常用扩展安装
之前已经弄过许多篇关于LAMP搭建的东西,都是基于最简单包的,这次说说几个比较常用扩展的安装:
- FreeBSD + Apache + PHP + Mysql (恶搞版)
- FreeBSD + Apache + PHP + Mysql + Oracle
- Ubuntu + Apache + PHP + Mysql ,比较简单,正常server版安装结束的最后一步可以选择安装LAMP
- Ubuntu + nginx + php
- Ubuntu + php + Oracle
Redhat的壁垒
前些日子,Redhat宣布将要改变现有的发行版本和补丁包的命名方式,并且直言不讳的说这样是为了“有效的防止竞争对手介入”。一点也不突然,自从Fedora从Redhat中分离的那一天起,这一天就迟早会到来,我反而觉得Redhat动手太迟了。
相比正统到迂腐的“HAT”,“FEDORA”休闲了很多,也正如单词本身的定位,现在的Redhat事实上是Redhat Enterprise Linux( 红帽企业Linux,RHEL)的意思,fedora成为了社区维护的Linux。事实证明,这种战略确实在尽可能的减少开支的情况下给Redhat带来了可观的收益。
说起盈利,目前正统的linux厂商甚至于开源软件厂商的盈利模式无外乎卖服务而已。显然的是,Redhat不但从技术上还是市场上,这些年一直是 作为商业Linux的标杆而“神一样的存在”。大量的应用甚至到专门为Redhat而开发。但说实话,Redhat的价格高的有些离谱,授权费用甚至超过商业Windows或者Unix。作为商业行为我们无可厚非,但对于这些专属应用的下场确实一个艰难的决定:要么放弃,要么使用非授权版本的RHEL。显然Centos的存在就是弥补了这样一个空缺——除了商标之外就是一个RHEL。当然,一贯在商业上滑头的Oracle也是搞了一套RHEL like的Oracle Linux;类似的还有Novell提出可以为客户维护RHEL的服务,这里也不再累述。

近期评论