手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 免费部署 N8N 的 Zeabur 注册 | 登陆
浏览模式: 标准 | 列表分类:苹果相关

ubuntu 11.04 一天

昨天安装的ubuntu到今天也算是差不多有一天了,用起来嘛,没有什么明显的障碍,事实上和以前的区别也不是特别的大,所以其实上我更多的就是在尝试使用新的界面。
安装好ubuntu后,第一步就是update和重新更换语言包,添加五笔输入法,这些搞定后,我接着就是apt-get install sun-java6-jre,然后在运行的时候同时去netbeans.org下载了netbeans,然后更新了我的firefox所有常用插件,并把我在台式机上的收藏夹,密码,同步了回来。再装了svn就一切都几乎和以前一样了。

接着就是一直操作新界面,起初的时候觉得还行,因为就象一个快捷方式在左边或者说状态栏在左边,但紧接而来的问题就是,该界面学苹果学的不像呀。把菜单栏缩在以前的顶部状态栏上,OK,这没问题,但是窗口用着用着就突然无法正常最大化了也不能拖动了,最明显的就是我用firefox的时候,按ctrl+u看源码,居然就随便浮动了一个小窗口在右侧不能放大不能缩小不能移动。害得我源码也无法看。然后鼠标移动到顶部菜单栏后也无法双击放大缩小(那个控制按钮不见了,firefox刚启动的时候会有这些控制按钮),这反而影响了我的工作效率。所以,在使用了两三个小时后,我退出了这个界面,回到了gnome。。。。。
其实,新界面还是很不错的,至少他的程序组菜单就相对比较方便,只是我更喜欢把常用的拖出来(虽然他可以拖到左侧那可以自动隐藏的状态栏上并锁定在上面,但左侧那一条的反应好象不是特别灵敏,或许是我的机器太烂了吧?)

最后插一句,如果想回到gnome,很方法的,注销当前用户,然后登录的时候,界面选择ubuntu classic就OK了,以后会自动认到gnome的。

Tags: ubuntu, netbeans, gnome

虚拟机上iptables不支持nat转发?

在虚拟机上尝试装ppptp的时候,发现一个问题,因为最后需要设置iptables,但是在执行的时候,报了这个错:
can’t initialize iptables table `nat’ ,后面还有一句我就不贴了。

找了很多资料,发现可能是在编译内核的时候,把nat去掉了。这样我就无法转发nat了。也就是说我的pptp是没有办法成功运行了。

再google了一下,发现一些问题,如果要加上这个nat,好象非得重新编译内核。否则无法装上。当然,也看到一篇文章说直接运行某句命令就OK了。【来源:http://pearlin.info/enable-nat-module-for-vps-cant-initialize-iptables-table-nat-table-does-not-exist/】
但好象我的虚拟机不是openVZ的。。。继续哭泣

XML/HTML代码
  1. I was getting the following error which configuring NAT on a VPS server.  
  2.   
  3. =========  
  4.   
  5. # iptables -t nat -nvL  
  6. iptables v1.3.5: can’t initialize iptables table `nat’: Table does not exist (do you need to insmod?)  
  7. Perhaps iptables or your kernel needs to be upgraded.  
  8.   
  9. =========  
  10.   
  11. You can fix this by using the following commands.  
  12.   
  13. vzctl set 115 –iptables “iptable_nat iptable_filter iptable_mangle ip_conntrack ipt_conntrack ipt_REDIRECT ipt_REJECT ipt_multiport ipt_helper ipt_LOG ipt_state” –save  
  14. Saved parameters for VE 115  
  15.   
  16. # vzctl restart 115  
  17. …  
  18. # vzctl enter 115  
  19. # iptables -t nat -nvL  
  20. Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)  
  21. pkts bytes target prot opt in out source destination  
  22.   
  23. Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)  
  24. pkts bytes target prot opt in out source destination  
  25.   
  26. Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)  
  27. pkts bytes target prot opt in out source destination   

不知道VPS的提供商能不能帮我装了。如果不行,那我可能就要換VPS了。。。痛苦啊。下次还是用UBUNTU吧。方便。。。。

Tags: iptables, nat

服务器启动memcache

服务器为了性能,已经启用了几个扩展,今天早上,又重新为它加上了memcache这个扩展。
其实以前memcached我早就装了,但memcache扩展我一直没有启用,如果用那个纯PHP的接口,也还是可以使用的。现在用上自带的标准接口,是为了未来的yii框架做打算(不过我也只开了很少的64M的缓冲区,对于我这样的小网站,足够了)

在ubuntu上安装memcache扩展是非常方便的。apt一下就全回来了。只是apache+php+mysql是单独配置的。所以还得象网上那些教程一样按顺序操作

1、wget http://pecl.php.net/get/memcache-2.2.3.tgz
2、tar zxvf memcache-2.2.3.tgz 到一个目录里
3、运行/software/php/bin/phpize 会得到一个环境变量(您的系统可能是/usr/local/bin/phpize)
4、./configure –enable-memcache –with-php-config=/usr/local/bin/php-config –with-zlib-dir
如果没有中断,可以直接执行第五步,如果有中断情况,则检查原因
5、make && make install (查看最后输出的路径)
6、到php.ini里查看一下你的Extension指向的路径,把第5步里的路径中的文件copy到extension指向的目录
     同时加上extension="memcache.so";
7、/etc/init.d/apachectl restart
OVER

Tags: linux, memcache

FlashCache

在看云风的BLOG的时候,他说游戏处理中IO的开销非常大,甚至一些IO会堵塞1~2秒。细想在WEB应用中,IO的开销就好象没有它那么高了,但一些应用了框架的系统还是会有很高的IO开销。
最早的时候,我是和同事们在考虑,是否系统在起动的时候,就把项目COPY到内存里,然后指定WEB目录为内存中的目录,当然涉及到写操作还是用管道引用到外面。这样的话,程序的IO就可以完全忽略掉了,只是,这个涉及到了,启动顺序和其他一些操作,还得写上不少的shell等,后来就完全搁浅了。这是在linux平台下。
后来,自己有了服务器,用的win平台。于是这时候我也尝试用ramdisk开辟了128M左右的空间用来做WEB应用。我当时的一些Cache的操作也是放在这128M空间里的。只是效果嘛,看不出,因为是自己的小应用,没有访问量。。。。但至少这是可行的(设置ramdisk的时候是关机时保存到磁盘,这样下次开机的时候它还会存在而不会被删除)
云风在博客中说他们用了RDB的结构来处理,即从B(backup)引到一部分数据到R(Ram)里面,然后写的时候,先写到R,然后用脚本増量到D(data)中,这样保证了B只读,D只写,内存R读写一起上。减少了大量的运行时IO开销。
该博客有很多评论,比如有建议用nosql的,有建议其他方法的,比如有个人就介绍了这个flashcache,看看觉得有意思就复制了下来。。。
关于flashcache的原文,在这里:http://www.orczhou.com/index.php/2010/09/flachcache-first-view/。。。

Flashcache是Facebook技术团队的又一力作,最初是为加速MySQL设计的。Flashcache是在Linux层面的,所以任何受磁盘IO困绕的软件或应用都可以方便的使用之。

1. Why Flashcache

随着时间的流逝,网站上的数据一直在不停的积累。如果你经营的只是一个博客的话,这不会是问题,因为10G的空间,大概就够你写一辈子了(如果放在硬盘上,其实一辈子很短)。如果你恰巧在一个快速增长的公司,数据会越来越多,从MB,到GB,再到TB。

如果将这些数据全部放在大容量的SATA、SAS盘上时,会发现性能(响应时间)不够;如果全放在SSD上时,又会发现成本很高。即使公司能够大气 到都放到SSD上,你会发现1TB的数据里面可能只有200G是经常被访问的,300G可能偶尔被访问到,最后剩下的500G可能已经成为历史数据了,几 乎不被访问到,如果全部都放在SSD上有略有浪费。于是就有了Flashcache

Flashcache一个非常不错的软件(准确的说是一个Linux的模块), 可以动态加载。Flashcache通过在文件系统(VFS)和设备驱动之间新增了一次缓存层,来实现对热门的缓存。Flashcache是另一种缓存, 一般用SSD作为介质的缓存(一般的缓存用的是内存),通过将传统硬盘上的热门数据缓存到SSD上,然后利用SSD优秀的读性能,来加速系统。这个方法较 之内存缓存,没有内存快,但是空间可以比内存大很多。

本文是一个关于Flashcache的初步介绍。

2. 谁适合用Flashcache

数据量很大(例如4TB),热门数据也很大(800GB),不必要或者不舍得全部买内存来缓存。

3. 谁适合用Flashcache

数据量不大的话,一般Flashcache就没什么用武之地了,内存就可以帮你解决问题了;

不差钱,买内存呗;

另外Flashcache的加入也使得系统的复杂度增加了一层,如果你坚持KISS原则(Keep it simple, Stupid!),也可以弃用之。

4. 基本原理图
大小: 48.66 K
尺寸: 500 x 296
浏览: 1803 次
点击打开新窗口浏览全图

上图中,Flashcache将普通的SAS盘(/dev/sda)和一个高速的SSD(/dev/sdb)虚拟成一个带缓存的块设备(/dev/mapper/cachedev)。后续还将会有更多关于Flashcache相关的文章出现,敬请期待。

5. Flashcache是否只是一个过渡产品

对于当前,PCI接口的SSD价格还十分昂贵,而随着时间的推移,价格会降;另外,根据摩尔定律,未来会有更快的设备出现,所以Flashcache是一个“持久的”产品,还只是一个过渡软件,这并不好说。

关注未来新技术的发展吧:)

参考:

1. Facebook / Flashcache

2. Releasing Flashcache of Facebook

3. flashcache-doc.txt

PS:写完整篇文章,最大的收获是:发现人的一生其实很短、很短,可能连1GB都不到。

Tags: flashcache

转:Ubuntu 9.04上的XEN虚拟服务器[转]

因为我不知道我能将服务器用来干嘛,所以我一直在想着是否有机会将自己的服务器进行虚拟化,由于找了一些资料都是centos之类的,所以确实不知道如何在ubuntu下进行安装此玩意。
虽然有此意愿,但确实我无法安装,因为我的机器的内存太小了,只有2G,如果进行虚拟化的话,内存应该是不够用的。
不过,即使这样,安装性的文章,我还是要备份一下,因为,我在找朋友赞助我内存条了。黑黑。。。。

原文地址:http://wells.osall.com/blog /index.php?uid=1&m=content&p=1434#article_content.php%3Fid%3D1434%26uid%3D1%26dt%3DY:pane:N;

要安装并使用XEN,首先更新软件源的信息。

# sudo apt-get update

然后安装xen服务器软件和工具。

# sudo aptitude install ubuntu-xen-server
# sudo aptitude install ubuntu-xen-desktop

这时候我们去/boot目录看,可以看到一个xen3.3.gz文件,但是没有供操作系统使用的XEN化的内核,因此此时的操作系统还不是Doamin-0。我找了好久都没找到现成的XEN化内核,于是就只能根据XEN手册自己编译一个内核了。

下载安装最新的kernel文件。

# sudo apt-get install linux-image-server linux-server

安装编译所需要的一些工具包。

# sudo apt-get install build-essential libncurses5-dev gawk mercurial

接下来下载XEN所提供的XEN化的内核的源代码。

# mkdir -p ~/build/linux-2.6.27-xen
# cd /usr/src/
# sudo hg clone http://xenbits.xensource.com/ext/linux-2.6.27-xen.hg

配置内核选项。

# cd /usr/src/linux-2.6.27-xen.hg
# sudo make O=~/build/linux-2.6.27-xen/ menuconfig

出现内核参数的配置菜单后,根据如下的选项修改配置。

General setup ---> Choose SLAB allocator (SLUB (Unqueued Allocator)) ---> (X) SLAB

Processor type and features ---> Subarchitecture Type (PC-compatible) ---> (X) Enable Xen compatible kernel

Bus options (PCI etc.)  ---> [*] PCI support
[*]   Xen PCI Frontend
[ ]     Xen PCI Frontend Debugging (NEW)

将 <M> 802.1d Ethernet Bridging 修改为 <*> 802.1d Ethernet Bridging:

Networking support ---> Networking options ---> <*> 802.1d Ethernet Bridging

关闭 10000 Mbit Ethernet 支持(否则可能编译失败):

Device Drivers ---> [*] Network device support ---> [ ] Ethernet (10000 Mbit) --->

在 XEN 选项区中,按照下面选择选项(确认选择 Xen version compatibility (3.0.4 and later) 来取代原来的 Xen version compatibility (3.0.2 and later)):

Device Drivers  ---> XEN  ---> [*] Privileged Guest (domain 0)
<*> Backend driver support (NEW)
<*>   Block-device backend driver (NEW)
<*>   Block-device tap backend driver (NEW)
<*>   Network-device backend driver (NEW)
(8)     Maximum simultaneous transmit requests (as a power of 2) (NEW)
[ ]     Pipelined transmitter (DANGEROUS) (NEW)
< >     Network-device loopback driver (NEW)
<*>   PCI-device backend driver (NEW)
PCI Backend Mode (Virtual PCI)  --->
[ ]     PCI Backend Debugging (NEW)
< >   TPM-device backend driver (NEW)
<M>   SCSI backend driver (NEW)
<M> Block-device frontend driver
<M> Network-device frontend driver
<M>   Network-device frontend driver acceleration for Solarflare NICs (NEW)
<M> SCSI frontend driver (NEW)
<*> User-space granted page access driver (NEW)
<*> Framebuffer-device frontend driver (NEW)
<*>   Keyboard-device frontend driver (NEW)
[*] Disable serial port drivers (NEW)
<*> Export Xen attributes in sysfs (NEW)
(256) Number of guest devices (NEW)
Xen version compatibility (3.0.4 and later)  --->

保存完配置后就可以开始编译内核了。

# sudo make O=~/build/linux-2.6.27-xen/
# sudo make O=~/build/linux-2.6.27-xen/ modules_install install

通过漫长的等待(我的Atom 330 CPU花了大约3个小时),终于编译完内核了。编译安装完成后,去/boot目录检查,应该可以看到生成了支持xen的2.6.27.5的内核了。

# ls -l /boot
total 72697
-rw-r--r-- 1 root root   525592 2009-04-17 12:05 abi-2.6.28-11-server
-rw-r--r-- 1 root root   524602 2009-07-25 11:14 abi-2.6.28-14-server
-rw-r--r-- 1 root root    87448 2009-08-13 19:50 config-2.6.27.5
-rw-r--r-- 1 root root    90587 2009-04-17 12:05 config-2.6.28-11-server
-rw-r--r-- 1 root root    90560 2009-07-25 11:14 config-2.6.28-14-server
drwxr-xr-x 2 root root     1024 2009-08-13 20:04 grub
-rw-r--r-- 1 root root  8259056 2009-08-14 03:31 initrd.img-2.6.28-11-server
-rw-r--r-- 1 root root  8272673 2009-08-13 15:02 initrd.img-2.6.28-14-server
drwxr-xr-x 2 root root    12288 2009-08-14 03:17 lost+found
-rw-r--r-- 1 root root   128796 2009-03-28 04:12 memtest86+.bin
-rw-r--r-- 1 root root  1651431 2009-08-13 19:50 System.map-2.6.27.5
-rw-r--r-- 1 root root  1871187 2009-04-17 12:05 System.map-2.6.28-11-server
-rw-r--r-- 1 root root  1863183 2009-07-25 11:14 System.map-2.6.28-14-server
-rw-r--r-- 1 root root     1169 2009-04-17 12:09 vmcoreinfo-2.6.28-11-server
-rw-r--r-- 1 root root     1169 2009-07-25 11:16 vmcoreinfo-2.6.28-14-server
-rw-r--r-- 1 root root  3145318 2009-08-13 19:50 vmlinuz-2.6.27.5
-rw-r--r-- 1 root root  3520832 2009-04-17 12:05 vmlinuz-2.6.28-11-server
-rw-r--r-- 1 root root  3510496 2009-07-25 11:14 vmlinuz-2.6.28-14-server
-rw-r--r-- 1 root root   470084 2009-06-18 16:16 xen-3.3.gz

内核有了,但是还没有initrd.img也就是启动时所需的ramdisk文件,手动来生成一个。

# sudo depmod 2.6.27.5
# sudo update-initramfs -c -k 2.6.27.5

更新grub引导程序。

# update-grub

现在XEN的环境基本上都建好了,我们需要来修改一下配置文件了。

XEN服务的配置文件都在/etc/xen目录下。XEN服务的主配置文件是 /etc/xen/xend-config.sxp。打开这个文件,我们要确认的是XEN虚拟服务器的网络连接方式,这是相当重要的。我选择了桥接模式, 也就是说,Domain-U虚拟机和Domain-0在同一子网,用Domain-0的物理网卡来进行桥接到虚拟机的虚拟网卡。

# sudo vi /etc/xen/xend-config.sxp

确认网络部分是这样配置的:
(network-script network-bridge)

下一步要根据你的习惯来修改。你喜欢将虚拟机安装在哪里?是用一个镜像文件来虚拟成磁盘,还是将一个LVM逻辑卷虚拟成磁盘,或者干脆就是将物理磁盘给虚拟机使用?

对于后两种选择,你可以跳过这一步。但如果你选择了在现有的文件系统中建立一个镜像文件来虚拟成一个虚拟机的物理磁盘,那就要按照下面修改默认配置了。

由于镜像文件在加载的时候是作为回圈设备(loop device),因此要将操作系统的默认最大回圈设备数量调大,以免出现不必要的问题。

# sudo vi /etc/modules

将loop这一行修改为:
loop max_loop=64

好啦,重启主机,进入Domain-0的世界!!!

# sudo shutdown -r now

重启完成后检查一下kernel版本,是不是XEN化的那个2.6.27.5?

# uname -r
2.6.27.5

现在可以使用XEN的管理命令xm,来看看虚拟机运行状况啦!

# sudo xm list
Name                                        ID   Mem VCPUs      State   Time(s)
Domain-0                                     0  1473     4     r-----    479.8

哈哈,可以看到Domain-0正常运行!!!你可以使用xm help来学习如何通过xm来管理虚拟机。

在State列,看到Domain-0是r的状态,也就是说,这个Domain正在运行中,并有任务在该Domain上运行。虚拟机还有如下几种状态:

  • r :该domain正在消耗CPU资源,任务运行中;
  • b :该domain正被暂时搁置(blockded),一般来说是因为这个domain在闲置中,等待输入或输出(I/O);
  • p :该domain处于暂停状态,通常是因为管理员使用 xm pause 暂停了这个domain。当domain至于暂停状态时,Xen的管理器将不会处理这个domain的任何动作;
  • s :该domain正在关机;
  • c :该domain已经crash了,但是没有关机。一般来说是因为domain的配置文件没有设置 on_crash 动作所致;
  • d :该domain正在死机中,一般来说是因为这个domain无法正确 shutdown/crashed 之故。

---------------------------
顺便说一下,文章所提到的原文地址无法打开,我的这篇文章来自于http://hi.baidu.com/airzhutao/blog/item/0cb546ef4ebb3be4cf1b3e4a.html。

Tags: ubuntu, xen, 虚拟化