2011年8月

[煮粥用料]:瘦肉1块(猪腱肉最好),皮蛋2个(无铅皮蛋),姜1块,水足量,油盐适量。
操作过程:
1.挑米:煮粥用的米最好用东北大米,就是圆圆短短的珍珠米,煮出的粥特别绵软。
2.煮粥的米要预先腌:约半碗米淘洗干净后,要用2汤匙的油、1个半茶匙的盐和少许水(2茶匙)拌匀,腌至少半小时。放心,虽然用了很多油,但是油会在煮粥的过程中挥发,令米绵烂,所以并不油腻的。
3.煮粥的肉要先用沸水煮煮去腥,或腌成咸肉:煮粥用瘦肉或腌的咸瘦肉,要保持一整块肉块不要切开(我一般用大约巴掌大、1~2厘米厚的一块猪肉,如果条件许可,用猪腱肉味道更好)。如果用瘦肉煮粥,那么要先用沸水把瘦肉略微煮煮,然后洗净;如果喜欢用腌的咸猪肉煮粥,那么要提前一天腌咸猪肉,方法如下:猪肉一块,冲洗干净,抹干,撒2~3茶匙盐,均匀涂抹在肉上,放冰箱冷藏箱腌12小时或更长时间才可以入味。
4.煮粥的水要充分沸腾才下材料:大汤锅中放很多水,煮沸,才放材料。先下肉块、姜片,火不要关小,肉块到了沸水中,外面的部分遇热而熟硬,封住了里面的肉汁,这样肉煮了粥后也不难吃。然后待水再次沸腾时下腌好的米和一个切碎的皮蛋,而这第一个皮蛋切碎下粥与米同煮,皮蛋会融化,融入粥的味道中。
5.先大火,后小火,火候要足:水沸了,下了材料后,先大火煮20分钟,然后再转小火煮1个半小时,火候足,粥就绵软入味而且容易消化。
6.粥的质感处理:在转小火煮了1个半小时后,把第二个皮蛋也切碎,同时把煮在粥中的瘦肉捞出来,用筷子扒拉撕成丝丝状,跟第二个皮蛋一起放回粥中,同煮最后半小时,然后关火。第二个皮蛋在关火前半小时加入粥中,半小时可将第二个皮蛋煮得既没有石灰味,同时又变软滑,吃粥时也能吃到有皮蛋,而肉因为是水沸时下的,还保持了一定鲜味,撕成丝后放回粥中,特别好吃。
这样煮出来的粥不必下盐,好吃,而且败火,容易消化。如果粥有点粘底,请千万不要用勺子扒拉锅底的粘皮,要不粥会有糊味。我们通常会放一个轻的小调羹在锅底与粥同煮,水沸腾过程中,小调羹也被带动,可以防止粥煮粘底

我和一个朋友各自有自己的宽带,由于住的近,就拉了条网线做互联,虽然看似简单,可是具体到技术实现又有了问题,以下是几天的漫长折腾,写这篇文章的时候才完全搞定。

首先说一下具体需求:

第一,两家局域网要做互联,要可以互访;

第二,两家正常上网还要走各自的宽待,不能相互影响(dhcp各自是各自的);

第三,我家宽带访问教育网快,我需要为我朋友提供部分地址的路由;
首先就排除了使用同一网段的打算,因为这样无法做复杂控制,也无法通过dhcp来同时搞定两家的所有计算机(不想人工设置IP地址,呵呵)

既然决定分两个网段,那么互联就成问题了,还好我的路由器(netgear 614v6修改版200M的CPU/4M固件/32M内存)支持自制系统,以前就刷了tomato固件,由于我更需要openvpn的功能,所以选择ovpn的mod版本,花了很多时间配置VPN,这里不详细说,主要说说怎么搞定vlan的吧,实现vlan就相当于让我的路由器支持两个网段的客户端,并且也可以互相路由了。

放狗搜了一下,发现中文资料太少了,于是还是上www.google.com吧,找到一篇很有价值的文章,链接如下

http://www.seiichiro0185.org/doku.php/blog:creating_a_seperate_guest_network_with_tomato

懂英文的建议看看,很简单其实

说说我的过程,路由器型号netgear 614v6

我家的网络192.168.1.0/24 网关192.168.1.1

朋友家的网络192.168.2.0/24 网关192.168.2.1

!!!注意:以下操作请谨慎操作,除非你知道你自己在做什么,本人不对因此发生的故障负责!!!

先要命令行登入路由器,telnet或者ssh,看你的路由器固件了

nvram set vlan0ports="2 3 4 5*" 
nvram set vlan2hwname=et0 
nvram set vlan2ports="1 5*" 
nvram commit

说说含义,第一条,设定我家里的本地vlan0端口,2口,3口,4口还有无线

第二条,设定vlan2,第三条,设定vlan2使用1口,这个口也就是我和我朋友互联的接口

完成之后就可以登陆进web界面操作了

先配置vlan2的IP,由于默认系统已经可以配置好vlan0,但新建的vlan2无任何配置,我们需要配置它的IP

 Administration-Scripts-Init

在这下面填入vlan2的配置脚本

sleep 10; 
ifconfig vlan2 192.168.2.254 netmask 255.255.255.0 up;

这句的含义是配置vlan2接口地址为192.168.2.254,我朋友家的网关是192.168.2.1

接着增加防火墙策略,允许vlan2

 Administration-Scripts-Firewall

增加两行策略

iptables -I INPUT -i vlan2 -j ACCEPT; 
iptables -I FORWARD -i vlan2 -j ACCEPT;

这里是允许访问所有网络,如果不希望访问某些网络的话,可以详细设置

比如下面这条就是不允许两个内网互访

iptables -I FORWARD -i br0 -o vlan2 -j DROP;

最后到我朋友家,在他家的路由器上增加几条静态路由即可

我家的网络192.168.1.0/24,网关是192.168.2.254

朋友需要借用的xxx.xxx.xxx.xxx/32,网关是192.168.2.254

OK,一切结束,重启一下路由器,看看是否有效。

近几年,国内各大电信运营商因为利益驱使纷纷开始在DNS服务器上搞域名劫持,通常的现象就是我们访问一个不存在的域名(比如我们打错了),运营商会自动跳转到一个智能域名纠错的网站,通常还包含有各种广告,很是烦人。

有时候由于一些网站使用CDN加速,甚至是正常的域名偶尔也会解析到广告IP,解决这种问题的最根本办法就是建立自己的DNS缓存服务器,我所在的公司就因为经常遇到DNS劫持和DNS服务器服务不稳定等问题而不得不自行搭建DNS缓存服务器来一劳永逸的解决问题。

不过很多个人用户无法搭建自己的DNS缓存服务器,针对个人用户有两种解决办法,一是使用自制(Linux)系统的路由器进行设置,比如Tomato固件的路由器就有类似功能,首先ping一个不存在的域名,记下解析到的IP,然后到管理界面,找到Advanced-DHCP/DNS,找到Dnsmasq,填入bogus-nxdomain=60.19.29.21

60.19.29.21这个IP是我的宽带运营商的广告IP,请按自己的做修改,可以填写多行,运营商定期会更换IP的,我就把60.19.29.21-60.19.29.25都填进去了,保存即可生效,再次ping一个不存在的域名,就会提示不存在了。

如果没有自制系统的路由器,那就需要更改本机的DNS了,改成opendns或者其他的,或者自己改hosts文件,把广告的域名都解析到本地127.0.0.1这个IP上。

Log Parser Lizard是基于Log Parser的图形化工具

界面友好,早就听过该软件的大名,一直没用过,今天要通过分析日志找到删除某个文件的人,当然前提是你的文件要开启对象访问设置(文件夹属性-安全-高级-审核-添加对象访问设置,详细请google吧)
方法如下,先安装好Log Parser Lizard,事件类型选择Windows Event Log,在最下方的Query中写入如下查询语句

select * from D:\yourname.evt where EventID=560 and Strings like '%关键字%' and Message like '%DELETE%'

D:yourname.evt是你的日志文件,或者直接输入System则为读取本机系统日志
EventID=560是限定事件ID,560指的文件特权操作,当然包含了删除动作,呵呵
Strings like ‘%关键字%’ 设置文件或文件夹关键字过滤,这里输入被删文件文件名就可以了
Message like ‘%DELETE%’ 这个限定了文件特权动作为删除动作

按此方式就可以分析出来限定关键字文件的删除日志,可以查到哪个IP和帐号删除的文件

由于工作需要,我打算配置一个分布式文件系统集群,主要用samba来做备份,即廉价,又无单点故障。

经过一番调研,最终决定使用lustre,lustre的分布式架构分了五个角色,mds/mdt/oss/ost/client,mds即元数据服务器,它会连接多个mdt,oss即chunkserver,,它会连接至多8个ost,client就是客户端啦

以下是安装配置过程
安装过程参考了以下文章,在此表示感谢!

http://rainbird.blog.51cto.com/211214/198619 http://wiki.lustre.org/index.php/Main_Page,但下载还是在sun的网站,在sun下载东西必须要登录,如果你没有账户那就要注册一个了,呵呵

由于我使用的操作系统是CentOS5.2 32位CPU,所以我选择的是Red Hat Enterprise Linux 5,i686,下载以下几个文件(注:下载时间不同,版本好可能有差异)

e2fsprogs-1.41.6.sun1-0redhat.rhel5.i386.rpm
kernel-2.6.18-164.11.1.el5_lustre.1.8.2.i686.rpm
lustre-1.8.2-2.6.18_164.11.1.el5_lustre.1.8.2.i686.rpm
lustre-client-1.8.2-2.6.18_164.11.1.el5_lustre.1.8.2.i686.rpm
lustre-client-modules-1.8.2-2.6.18_164.11.1.el5_lustre.1.8.2.i686.rpm
lustre-ldiskfs-3.0.9-2.6.18_164.11.1.el5_lustre.1.8.2.i686.rpm
lustre-modules-1.8.2-2.6.18_164.11.1.el5_lustre.1.8.2.i686.rpm

如果你的操作系统版本刚好和这几个rpm包匹配,那么恭喜你,你可以直接强制安装这几个包,用以下命令

rpm -ivh -aid --force *.rpm

由于我手上的CentOS版本是5.2不够新,我又懒得下载那好几百兆的文件升级,在我运行这个命令后,得到如下提示

ecryptfs-utils < 44 conflicts with kernel-2.6.18

这个的意思是说,要安装打过patch的kernel,ecryptfs-utils的版本必须大于44,于是先更新ecryptfs-utils这个软件包

输入如下指令

yum update ecryptfs-utils

升级完ecryptfs-utils,就可以重新敲刚才的命令了,一切顺利,安装完毕,下面开始配置部分

测试环境使用了3台centos,一台用作mds(192.168.0.101),两台用作ost和client(192.168.0.102/103),所有计算机上均配置两块硬盘,hda装系统,hdb用于存放数据

mds上配置如下命令:

modprobe lustre #内核加载lustre模块 
modprobe ldiskfs #内核加载ldiskfs模块 
modprobe lnet network=tcp0(eth0) #绑定网卡 
mkfs.lustre --fsname=test --mdt --reformat --mgs /dev/hdb #在第二块硬盘上创建lustre格式分区 
mkdir /home/lustre #创建目录 
mount.lustre /dev/hdb /home/lustre #把lustre分区挂载到本地文件夹

oss上配置如下命令:

modprobe lustre #内核加载lustre模块 
modprobe ldiskfs #内核加载ldiskfs模块 
modprobe lnet network=tcp0(eth0) #绑定网卡 
mkfs.lustre --fsname=test --reformat --ost --mgsnode=192.168.0.101@tcp0 /dev/hdb #创建lustre分区并绑定到mdt 
mkdir /home/lustre #创建目录 
mount.lustre /dev/hdb /home/lustre #把lustre分区挂载到本地文件夹 
mkdir /home/client #创建目录 
mount.lustre 192.168.0.101@tcp0:/test /home/client #把lustre分布式文件系统挂载到客户端使用

好了,大功告成,接下来配置需要的服务使用这个client文件夹就可以啦

以后再写mdt的冗余问题,目前的配置,还存在一个mdt的单点故障