显示标签为“技术笔记”的博文。显示所有博文
显示标签为“技术笔记”的博文。显示所有博文

星期一, 二月 28, 2011

linux iptables


一直想试试linux下的iptables,终于2月份有时间尝试了一次。


调试的过程是痛苦的,痛苦在于services iptables restart之后很久,还是老的规则在生效,也不知道是缓存还是啥,反正很郁闷。


最终是好用的,记录如下。


简单说就是修改3文件。
vi /etc/modprobe.conf
vi /etc/sysconfig/iptables-config
vi /etc/sysconfig/iptables


vi /etc/modprobe.conf
[root@mxinews2 ~]# cat /etc/modprobe.conf
。。。。。。
options ip_conntrack_ftp ports=21,2131,2132,2133
options ip_nat_ftp ports=21,2131,2132,2133
重点是红色的部分哦。如果您的ftp server不是标准端口,在这里设置才好用。


vi /etc/sysconfig/iptables-config
[root@mxinews2 ~]# cat /etc/sysconfig/iptables-config
IPTABLES_MODULES="ip_conntrack"
IPTABLES_MODULES="ip_conntrack_ftp"
IPTABLES_MODULES="ip_nat"
IPTABLES_MODULES="ip_nat_ftp"


vi /etc/sysconfig/iptables
[root@mxinews2 logs]# cat /etc/sysconfig/iptables
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -i lo -j ACCEPT
-A OUTPUT -o lo -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -s 192.168.11.0/24 -p tcp -m tcp --dport 21 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
-A INPUT -p udp -m udp --dport 694 -j ACCEPT
-A INPUT -s 192.168.11.0/24 -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -s 192.168.11.0/24 -p udp -m multiport --dports 137,138 -j ACCEPT
-A INPUT -s 192.168.11.0/24 -p tcp -m multiport --dports 139,445 -j ACCEPT
#-A INPUT -j REJECT --reject-with icmp-port-unreachable
COMMIT


星期三, 一月 19, 2011

从cifs客户端删除一个文件

通过CIFS协议mount了一个目录过来。


删除文件后,发现该目录下又冒出一个以cifs开头无扩展名的特殊文件,其创建时间与我刚删除的文件保持一致。

通过stat看,inode节点值不同,但是创建时间,文件大小一样,内容也一样。

再删除,仍然是成功,但是同理,是该文件没了,多了一个新的cifs开头的临时文件。

后来用fuser看的时候,发现一点点端倪。

貌似是有另一个程序在open该文件,没有关闭,所以这边删除,那边samba的server不干了,改头换面又出现了。

把那个程序关闭重启后,再删除此文件,则不出现失而复得的问题。

恐怕是samba的bug,或者是考虑不周。

我的环境:


[enews@myhostname~]$ uname -a

Linux myhostname 2.6.18-92.el5 #1 SMP Tue Apr 29 13:16:15 EDT 2008 x86_64 x86_64 x86_64 GNU/Linux


[enews@i0gtw1 ~]$ rpm -qa|grep samba


samba-common-3.0.28-0.el5.8

samba-3.0.28-0.el5.8

samba-client-3.0.28-0.el5.8

system-config-samba-1.2.39-1.el5

samba-common-3.0.28-0.el5.8



[enews@i0gtw1 content]$ /sbin/fuser -v cifs5eab

Cannot stat file /proc/1902/fd/233: No such file or directory

Cannot stat file /proc/1902/fd/254: No such file or directory

Cannot stat file /proc/1902/fd/288: No such file or directory

[enews@i0gtw1 content]$ ll /proc/1902/fd/{233,254,288}

lr-x------ 1 enews enews 64 01-19 12:30 /proc/1902/fd/233 -> /enewsdc/datacenter/sms_gateway/xhsbjxt/content/XHSBJXT20110118_7942109.xml (deleted)

lr-x------ 1 enews enews 64 01-19 12:30 /proc/1902/fd/254 -> /enewsdc/datacenter/sms_gateway/xhsbjxt/content/XHSBJXT20110118_7942109.xml (deleted)

lr-x------ 1 enews enews 64 01-19 12:30 /proc/1902/fd/288 -> /enewsdc/datacenter/sms_gateway/xhsbjxt/content/XHSBJXT20110118_7942109.xml (deleted)

星期日, 十二月 26, 2010

2009年3月发现的一个nfs caching问题


这是一个老问题了,超过21个月之后,重新拿出来记录一下。


问题出现在2009年,在2009年3月12-15日期间,专门针对此问题向网闸和操作系统的厂商提交了问题,经过多次邮件交涉(GMAIL有记录),最终对问题有了基本认识。当时邮件不少,却没有汇总报告,今天刚好想起来就简单汇总一下。



此问题的现象是,在nfs server上能看到/ datacenter/collected/test/flag下面有文件,但是在nfs client上看不到。


文件送到server上用的是ftp协议,一个java程序在轮询flag目录,发现有新文件就处理掉。结果就是文件已经存在很久了,程序就是找不到该文件,用ls也看不到。



最开始怀疑问题出现在穿透网闸,再后来把测试程序写出来以后,在不走网闸的情况下,也会出现问题,只是频率不同而已,因此最终把火力瞄准了nfs,而不是网闸。


共享用的是nfs协议,开始以为是nfs server有问题,后来查找资料,发行是nfs client的caching问题。


To free pagecache, use echo 1 > /proc/sys/vm/drop_caches; to


free
dentries and inodes, use echo 2 > /proc/sys/vm/drop_caches;


to free pagecache, dentries and inodes, use echo 3 >


/proc/sys/vm/drop_caches.




Because this is a non-destructive operation and dirty objects


are not freeable, the user should run sync(8) first.



在问题出现时,用ls命令是看不到文件的,但是如果知道确切文件名的话,可以用stat命令显示该文件的信息,但是如果stat *仍然看不到,在nfs server上则所有问题都不存在,说明文件确确实实写到磁盘上了。


处理办法:


1,改用cifs共享方式。CIFS协议无此问题。我最终选用了这个方案。


2,定时touch一下flag目录,这个方法最简单,且普通用户就可以了。


3,定时清缓存。如果去清除cache,有可能会导致脏数据丢失,因此必须事先发出sync命令,且必须以root来执行。个人觉得这个方法不现实,频率掌握不了,且需要root权限,就没做详细测试。



经验值:测试程序非常重要,专门写的制造此问题的程序,可以在公司的实验环境中将问题复现出来,且频率提高以后,还可以将网闸等非关键要素给筛选过滤出局。


问题的终极解决办法,估计需要等nfs协议的v4版本NFS v4 (pNFS)来彻底解决,并且在v4本身已经采用了全新的协议方式,估计可以从根本上避免此问题。实际上,v4发展的是相当的慢。


星期一, 九月 27, 2010

云计算和服务器集群的关系


2008.09.25 周鸿祎语出惊人,"一家企业没有1000台以上的服务器,就不要妄谈'云安全'。"


http://tech.163.com/08/0925/10/4MM87M3V000915BF.html


2010.06.25 他们自己装的超过100万台组成的计算机群是Google的真正核心竞争力。Skype做的电话系统是一个非常标准的云计算平台。


http://tech.sina.com.cn/it/2010-06-25/15364352038.shtml



不管是数据中心,还是服务器集群,还是超算,还是超级计算机,还是云计算,都是提供高效率的后台计算能力,这些就是未来IT业务的核心。至于端,目前最火的莫过于iPhone/iPad/gPhone/xPhone之类的移动终端了,个人理解基于HTML5的浏览器也会带来PC端的提升。可以预计的个人未来几年的工作,都会与之有关。


星期四, 九月 23, 2010

mysql的timestamp字段


在5.0和5.1版本上都发现了这个warning,记录一下。

根据bug报告记录显示,"WIN XP Professional" with MySQL 6.0.8Alpha版本上,干脆是直接fail掉了。



Server version: 5.1.32-log MySQL Community Server (GPL)

Your MySQL connection id is 124144 to server version: 5.0.27-standard-log



mysql> CREATE TABLE test1 (updatetime timestamp(14) DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP) ENGINE = InnoDB;


Query OK, 0 rows affected, 1 warning (0.01 sec)

mysql> show warnings;

*************************** 1. row ***************************


Level: Warning


Code: 1287


Message: 'TIMESTAMP(14)' is deprecated; use 'TIMESTAMP' instead


1 row in set (0.00 sec)




同时,TIMESTAMP字段是个很神奇的东西,值得copy一下其使用规则。


TIMESTAMP值显示尺寸的格式如下表所示:


  :


  +---------------+----------------+


  | 列类型    | 显示格式    |


  | TIMESTAMP(14) | YYYYMMDDHHMMSS | 


  | TIMESTAMP(12) | YYMMDDHHMMSS  |


  | TIMESTAMP(10) | YYMMDDHHMM   |


  | TIMESTAMP(8) | YYYYMMDD    |


  | TIMESTAMP(6) | YYMMDD     |


  | TIMESTAMP(4) | YYMM      |


  | TIMESTAMP(2) | YY       |


  +---------------+----------------+


  "完整"TIMESTAMP格式是14位,但TIMESTAMP列也可以用更短的显示尺寸创造


  最常见的显示尺寸是6、8、12、和14。


  你可以在创建表时指定一个任意的显示尺寸,但是定义列长为0或比14大均会被强制定义为列长14。


  列长在从1~13范围的奇数值尺寸均被强制为下一个更大的偶数。


  


  列如:


  定义字段长度   强制字段长度


  TIMESTAMP(0) -> TIMESTAMP(14)


  TIMESTAMP(15)-> TIMESTAMP(14)


  TIMESTAMP(1) -> TIMESTAMP(2)


  TIMESTAMP(5) -> TIMESTAMP(6)


  


  所有的TIMESTAMP列都有同样的存储大小,


  使用被指定的时期时间值的完整精度(14位)存储合法的值不考虑显示尺寸。


  不合法的日期,将会被强制为0存储


你可以非常灵便地确定什么时候初始化和更新TIMESTAMP和对哪些列进行初始化和更新:例子,下面这些语句是等效的:

CREATE TABLE t (ts TIMESTAMP);


CREATE TABLE t (ts TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP);


CREATE TABLE t (ts TIMESTAMP ON UPDATE CURRENT_TIMESTAMP DEFAULT CURRENT_TIMESTAMP);

星期二, 八月 03, 2010

7月8日发布的Java 1.6.0_21,当月12日就爆出崩溃问题


昨天(2010年8月2日)看到的消息,Java 1.6.0_21有不少非技术问题,不是很稳定,建议暂时不要更新,当天外网电脑已经有此版本的更新提示了。






Java SE 6 Update 21发布 修复大量安全漏洞

美国太平洋时间2010年7月8日美国甲骨文公司发布Java SE 6 Update 21,简称:6u21。此更新的完整版本的内部版本是1.6.0_21-b06(其中"B"的意思是"Build--建设")。外部版本号是6u21。(51CTO独家专题推荐:Java EE 6平台指南)











甲骨文的Java更换企业名称导致Eclipse崩溃

在Java 1.6.0_21中,Java的公司字段从"Sun Microsystems, Inc"改为了"Oracle.",但这一改动却导致了始料未及的后果:因为有些应用程序是需要依靠公司字段识别虚拟机。集成开发工具Eclipse 3.3版后的版本,包括刚刚发布的Eclipse Helios,都由于这一改变而报OutOfMemoryError错误,因此而发生崩溃。Java是通过自动更新程序更新的。

星期四, 七月 15, 2010

linux var log问题解决


观察新装的几台linux服务器状况,发现var目录超大,连续两周检查,均超大。


大文件分别存储在这些目录中:/var/log/xferlog, /var/cache/logwatch


1,检查发现,xferlog是vsftpd产生的。

而其根源在于vsftpd的缺省配置。

[root@xx~]# grep xfer /etc/vsftpd/vsftpd.conf


xferlog_enable=YES


#xferlog_file=/var/log/vsftpd.log


xferlog_std_format=YES

貌似配置没啥问题,从表面来看也不应该产生xferlog文件,但是偏偏/var/log目录下没有vsftpd.log,只有另一个xferlog
文件。其原因在于xferlog_file
缺省值是/var/log/xferlog,它被注释掉了,所以执行缺省值。




而每天都会进行归档的/etc/cron.daily/logrotate程序的配置中没有包括xferlog文件的规档,但是它已经缺省包含了/var/log/vsftpd.log的归档配置。

[root@xx~]# cat /etc/logrotate.d/vsftpd.log


/var/log/vsftpd.log {


# ftpd doesn't handle SIGHUP properly


nocompress


missingok


}


解决办法很简单,修改/etc/vsftpd/vsftpd.conf配置文件,把xferlog_file前面的#井号去掉。然后重启vsftpd即可。




2,检查发现,logwatch是每天都会增加的。

每天都由/etc/cron.daily/0logwatch来执行和调度。

目前还没有找到太好的办法来控制这些文件的产生。

如果需要手工删除过大的文件,可以通过find来查找。

查找大于1M大小的文件 find . -size +1M -exec ls -l {} ;


估计可以按这种思路去解决:

vi /etc/cron.daily/tmpwatch

增加一行内容,保留100天的归档文件(子目录):


/usr/sbin/tmpwatch --mtime 2400 /var/cache/logwatch






星期一, 六月 14, 2010

db2 v9对linux版本的要求


居然有3个月没写过技术贴了,说明也很久没成长了。惭愧啊,三个月都是在热盛饭。


总结一下db2 v9对linux版本的要求吧,也算是这两天解决的一个问题。

问题现象:

install db2 9 (64 bit) on Redhat Enterprise Linux (64 bit). It is giving error.


ERROR:

The following library files could not be loaded by db2langdir in /shared/DB2_V_Client/db2/linuxamd64/install/../bin

-> libstdc++.so.5


在执行DB2安装程序时,总是显示没有libstdc++.so.5文件?


原因:由于C语言库版本高,系统中只有libstdc++.so.6。


解决方法:找一个libstdc++.so.5的RPM包,安装上就可以了。软件包是类似于compat-libstdc++-33-3.2.3-63.i386.rpm或者compat-libstdc++-33-3.2.3-63.x86_64.rpm的一个rpm包,一般操作系统DVD安装光盘里会带的。


DB2 9.1


Red Hat Enterprise Linux (RHEL) 4 和 5


#没提到libstdc++的要求,事实证明也必须有libstdc++so.5才能安装和运行。


DB2 9.5


Red Hat Enterprise Linux(RHEL)4 Update 4


Red Hat Enterprise Linux(RHEL)5


libstdc++so.5


DB2 9.7


Red Hat Enterprise Linux (RHEL) 5 更新 2


libstdc++so.6


# 对于 DB2 Net Search Extender,libstdc++.so.5 是必需的。


# 对于 DB2 数据库服务器和客户机,libstdc++.so.6 是必需的。但是,如果使用了 IBM Tivoli® System Automation for Multiplatforms 或 IBM Tivoli Monitoring for Databases: DB2 Agent,那么需要 libstdc++.so.5。



星期日, 二月 14, 2010

使用clonezilla进行linux系统的物理机到虚拟机的P2V迁移


写出来还是挺简单的,解决问题的过程还是挺辛苦的,主要是google一些资料,还要甄别出部分资料的误导。


问题的来源:


10号上午,偶打算用ghost备份linux系统,在机房进行实际操作的时候,发现ghost(版本11)提示系统内有LVM,它可以备份,但是可能恢复的时候会有问题,就做了备份,但没敢做恢复试验。回来问专家,并google一些资料,发现大多数人都是说不行的,偶直接放弃恢复的想法。google的时候,发现了clonezilla真么个开源东东。


10号下午,偶和丁丁去机房做测试,用clonezilla还算顺利,成功备份出来,直接傻大胆的测试了一下,也成功了。由于ibm的developworks说可以进行p2v试验,丁丁兴趣就比较大了。


11号,偶在机房,把6台linux机器做了clonezilla的镜像,把1台win2008机器做了ghost镜像。下午在丁丁的虚拟环境中进行恢复试验,到下班的时候接近尾声,后来丁丁给我短信,启动失败。


12号,上午查资料,晚上也抽空google一下。


13号,牛年最后一天了,休息。


14号上午,虎年第一天就要值班,闲来无事,继续恢复linux系统的实验,综合google出来的方法基本上直接成功。


问题点:引导时,kernel panic,找不到硬盘,找不到vg,找不到lv等等。但是如果用引导光盘进去linux rescue发现一切都是好的,lv/pv/vg都可以看到,所以估计还是引导过程出的问题,事实上也仅仅是需要重新编译一下initrd,让它具有vmware环境里硬盘的驱动就可以了。vmware缺省的scsi硬盘是lsilogic型号的。


环境说明:


物理机:DELL R710, Asianux3sp2-64bit


虚拟机:DELL R710, Vmware Esx4(vSphere)


所用软件版本:clonezilla-live-1.2.3-27.iso, rhel-server-5.3-x86_64-dvd.iso


有用的资料:


http://www.ibm.com/developerworks/cn/linux/l-clonezilla/index.html


http://hi.baidu.com/%C7%E1%D2%F7%CD%F9%CA%C2/blog/item/de57aa943bb00f41d0135e07.html


http://tzahid.spaces.live.com/blog/cns!E99E74DBE0A928BC!595.entry


http://www.mondorescue.org/docs/p2v.pdf



http://cdnetworks-kr-1.dl.sourceforge.net/project/clonezilla/clonezilla_live_stable/clonezilla-live-1.2.3-27.iso


丁丁找到的克隆Linux开源资料:


1.g4l http://sourceforge.net/projects/g4l/


2.Mondorescue http://www.mondorescue.org/


3.partimage http://www.partimage.org/


4.Clonezilla http://clonezilla.org/


操作步骤:(测试成功)


1,使用clonezilla live进行备份。


可备份到移动硬盘上,或者网络上。


不管使用哪种方式,都建议将备份好的image放到网络上,便于后续的恢复工作。


记录一下,当前1.2.3版本的clonezilla还不认识R710的网卡,所以引导过程需要超时4次,每次1分钟,因为机器有4块网卡,耗时。当了后边vmware环境中,它就认识那个网卡了,启动非常快速。


2,在虚拟机中创建一个新的虚拟机。


注意硬盘不能小于物理机的硬盘。


3,启动虚拟机,并以clonezilla live光盘引导。


进入shell模式,使用fdisk对本地的硬盘进行分区,只需要创建一个分区,保存分区表。


重启虚拟机。


sudo su -


fdisk -l


fdisk /dev/sda;(创建分区)


reboot


4,再次以clonezilla live光盘引导,启动虚拟机,进行linux系统的恢复。


进行恢复。使用网络资源进行恢复,本地机器设置静态ip即可,我使用的ssh方式挂载镜像数据,非常方便。


5,恢复系统以后,调整一些参数。


如果不执行此步骤,直接启动虚机硬盘引导,会遇到panic之类的严重错误,其实就是找不到合适的引导盘。


用linux的安装光盘(随便哪个版本都可以,只要是Linux即可,版本与主机系统相同是最好)引导虚拟机启动,进入linux rescue模式。


然后执行mkinitrd命令,重建initrd即可。


如果有多余的文件系统,可以修改/etc/fstab文件进行注释,如果原来物理机里有多块本地硬盘,或者加载有iscsi/san等网络磁盘,都需要修改这个文件。


6,重启就好了。


poertoff虚机,修改虚机设置,将光驱挂载去掉,虚拟机可以不要光盘引导了,可以自行引导了。


power on之后,虚机不再报错了,系统正常了!


只需要修改自己的网络地址,所有服务已正常。


==============================================================


linux rescue


chroot /mnt/sysimage/


vi /etc/fstab


vi /etc/modprobe.conf


cp -p /boot/initrd-2.6.18-128.7AXS3.img /boot/initrd-2.6.18-128.7AXS3.img.old


mkinitrd -v -f /boot/initrd-2.6.18-128.7AXS3.img 2.6.18-128.7AXS3


内核版本可以看这里:ls -l /lib/modules/


cat /etc/modprobe.conf


alias scsi_hostadapter mptbase


alias scsi_hostadapter1 mptspi


alias scsi_hostadapter2 ata_piix


需要注释掉原来的有关scsi_hostadpter(n)之类的命令行。


vmware的虚拟硬盘是lsilogic,需要装载mpt系列驱动。


cat /etc/sysconfig/network-scripts/ifcfg-eth0


# Intel Corporation 82545EM Gigabit Ethernet Controller (Copper)


DEVICE=eth0


BOOTPROTO=none


HWADDR=00:0C:29:A3:6D:28


ONBOOT=yes


NETMASK=255.255.255.0


IPADDR=10.10.10.250


GATEWAY=10.10.10.254


TYPE=Ethernet


USERCTL=no


IPV6INIT=no


PEERDNS=yes



星期六, 一月 30, 2010

接触sun solaris产品


2010年1月。

新年头一个月,基本上都在折腾那两台SUN T5240了,当然还有一台存储是Sun StorageTek 6140。

虽然自1997年以来都在用IBM的设备,但俺主要负责应用,在系统层面知之也不多。

好在自2007年以来,对PC Server有了更进一步认识,配合Linux系统,还是很顺手。

SUN设备基本可以算是第一次使用,虽然2001年接触过E250,但也仅仅限于在OS上面装个apache和gcc之类的,了解不算深入。

这次由于职责所在,接触了sun的服务器和存储。

总体来说,存储还算可以,管理虽然和IBM的不太一样,但也算简单易用。

但是,SUN的服务器实在是不敢苟同,不能推荐大范围使用。


列一下初步认识吧。

1,那个CPU。

真是慢啊,号称是配备了2颗六核UltraSPARC T2,但由于主频是1.2G,尽管机器配备了32GB内存,可在启动WAS的时候,居然耗时12分钟+30秒,太令人郁闷了。

2,那个显示器。

可能是小机的原因,人家标配是没有显卡的,单独配了显卡,缺省人家也不往上边输出的。

就算你改过来,还有可能因为接线和开机的顺序不同,导致不同结果。

说实话,到现在,我也没弄明白,怎么可以肯定的让它在直连的显示器上进行终端显示。

3,那个cluster。

安装包巨大,几百M还是有的,还要再打一堆补丁就不说了。

操作还算简单。功能不算丰富,尤其是设置方面,没啥可设置的。

或许是人家很强大的缘故,所以全智能了?应该不至于。

但感觉和linux的开源产品heartbeat没有太大区别,可以多资源组配置算是比HB好的地方了。

4,那个google

在互联网时代,居然有google/baidu不出来的技术问题/资料,sun产品应该算其中之一了。

很多问题,提交到google上,居然没啥接近的信息。

或许是sun售后做的太好了,不需要大家用google解决之。

5,工业化产品,PC服务器。

性价比绝对要让位于PC server了。

在Intel于2009年推出Nehalem-EP后,业界普遍知道了5500 CPU的强大动力,以及经济萧条影响之下,工业化开放标准设备PC服务器之便宜,性价比之高,绝不是做专有设备的SUN或者IBM的RISC小机能比的了。

而如果Intel能够在2010年如期推出Nehalem-EX处理器,PC Server能够担当数据库服务器,基本上应该就没有问题了,这目前是RISC能够固守的最后一块阵地了。

当然Intel针对的并不单单是RISC,而是AMD,这几年AMD的确给市场带来不少好东西,促使intel也推出更好更便宜的处理器。这才是市场。

而SUN和IBM的RISC呢,欺骗IT群众。在做不了多核的时候,可劲的提高主频,在主频提高不了的的时候,又用多核解决问题,到了6核以后,又说核心之间的协作也太消耗资源,不能更多核了,而等另一个对手做出更多核的时候,他们还是要跟进。到最后你也不知道到底是技术有瓶颈,还是他的市场策略有问题。总之千万别听信他们的托词,一定要性价比,一定要知道更高主频更多核心才能带来高性能。当然了低碳节能是另外一个话题,也是可以作为他们的托辞之一的。


星期四, 十二月 31, 2009

新机器安装Linux需知

年底了,来设备了,6台DELL R710安装Linux,1台R610安装Windows2008。




机器配置了RAID卡,因此首先是按照自己的想法重新做raid。


有6块磁盘,用raid-1做了两块虚盘,剩下2块做全局hotspare磁盘。


raid在VD Mgmt里面做。全局hotspare盘在PD Mgmt里面做。




提示:一定要对新配置成功的虚拟磁盘(Virtual Disk 0)进行初始化(Initialization),否则在安装linux的时候,会遇到各种各样奇奇怪怪的问题。




偶今天遇到的问题:


1,刚刚delete掉已有raid5,重新建的raid,在linux安装时,居然能看到sda磁盘下面有2个分区!


2,分区完成后,在格式化/boot分区时,停留不动,可以理解为安装界面死机,此时只能强行关电。


3,设置网络时,由于没填写DNS,安装程序自然会提示没有dns没设置,让用户点continue和cancel,结果点那个都不动。基本上也属于安装界面死机了。


4,报错,安装程序提示是否在tty2上登录,因为无法弹出光驱/mnt/source,怀疑是重做分区后,设备名称发生了变化。




和主标题无关的一个现象:


使用dell引导盘在R610上安装windows2008,居然设备管理器里有2种设备无法识别(7个,其中4个是网卡)。在dell上找到驱动网卡驱动搞定,另一个还待查设备名称。




星期二, 十二月 29, 2009

netdev in /etc/fstab


iscsi磁盘时,非常有用。


_netdev 挂载选项。该挂载选项指示将在网络启动后挂载该卷,在关闭网络前卸载该卷。


另外,由于iscsi磁盘对应的设备名称sdb/sdc/sdd/sde等可能会有变化,使用LVM管理,将是很好的解决方案。


星期日, 十一月 22, 2009

准备研究一下Cobbler

周五和redhat工程师聊天,请教了他关于自动化安装方面的问题。




推荐了两个工具,适合于大规模Linux环境的工具。




Cobbler,自动化安装。https://fedorahosted.org/cobbler/


SpaceWalk,远程监管升级等日常系统管理。https://fedorahosted.org/spacewalk/ 这个产品就是Redhat Network Satellite的开源版本。据RH工程师说不允许使用该工具对RHEL进行管理,只允许管理CentOS或者Fedora之类的社区版本,但官方介绍里好像是可以的。http://www.redhat.com/spacewalk/




估计spacewalk的需求不是很强烈,但是cobbler的需求还是有的,虽然部署规模不是很大,可是我喜欢将所有的同类机器安装成完全一样的配置,有了cobbler就会省事很多。


貌似cobbler是简化了以前的PXE,TFTP,DHCP,NFS等配置。


据说可以在其界面中制作Kickstar脚本。




需要测试一下。




星期一, 八月 10, 2009

uptime & nmon监控系统负载


uptime


load average: 0.03, 0.02, 0.00

前几天看文章,讲到uptime里的load averages,对比看了一下自己的系统。


# 0.00 表示目前桥面上没有任何的车流。


# 1.00 表示刚好是在这座桥的承受范围内。


# 超过 1.00,那么说明这座桥已经超出负荷,交通严重的拥堵。
在多个多核处理器系统中,负载均值是基于内核的总数量决定的。

哇喔,你有个四核处理器的主机?那么它的负载均值在 3.00 是很正常的。


nmon

很早以前,在AIX上部署过nmon32监控,当时也是对系统的负载没把握,有点不放心,就连续对系统进行了一周的监控,后来常态化了。

linux下的nmon相对要麻烦一点,google了一下,发现已经opensource了,与时俱进,也算不错的结局。

下载了binary版本,发现32bit和64bit之间有兼容性问题,不能用,但是make版本可以用并且很方便。

资料在这里:


星期三, 六月 24, 2009

linux系统中tmp目录下的子目录无辜消失


系统中有一个程序,不点名了,它在运行时使用到/tmp目录下的一个子目录,最近发现经常会无辜找不到该目录,导致报错,导致工作异常。


周一认真检查了一下,发现是linux特色的一个东西。


原因:操作系统每天都会执行一个程序,该程序会自动将一些所谓垃圾文件清理掉,我们所需要的那个目录被河蟹了。


more /etc/crontab里边包含一行


2 4 * * * root run-parts /etc/cron.daily 注:表示每天的4点2分,开始执行/etc/cron.daily目录下的可执行程序或脚本;


其中有一个tmpwatch程序,会自动把/tmp目录下的过期文件和目录删除掉。可以通过修改该文件的方式,把该目录作例外处理。

more /etc/cron.daily/tmpwatch


/usr/sbin/tmpwatch -x /tmp/.X11-unix -x /tmp/.XIM-unix -x /tmp/.font-unix


-x /tmp/.ICE-unix -x /tmp/.Test-unix 240 /tmp


/usr/sbin/tmpwatch 720 /var/tmp


for d in /var/{cache/man,catman}/{cat?,X11R6/cat?,local/cat?}; do


if [ -d "$d" ]; then


/usr/sbin/tmpwatch -f 720 "$d"


fi


done



星期六, 六月 13, 2009

ubuntu mac address


在T41上安装ubuntu 9.04以后,就发现wifi很好用,自动就安装好驱动,在家里也能够检测到信号,能够自动连接。


但是居然没有普通网卡!没有eth0,只有eth1无线网卡,很是奇怪。最初怀疑是网卡驱动,但是由于ubuntu的版本够新,而thinkpad本本的名气够大,按说是不会出现驱动问题的,何况无线网卡都能找到,何况是有线网卡呢。


后来用mii-tool也没看到eth0,用dmesg的时候,似乎看到一点希望,至少是扫描到硬件设备了。


再用ifconfig eth0的时候,终于知道问题了,eth0的mac地址为全零。


这是一个老问题了,在windows时代已经遇到并解决了问题。那台T41机器,不知道为啥,网卡只坏到mac地址丢失,只要重装完windows,mac地址必然清零,好在网上可以找到很多类似软件可以修改mac地址的,我使用的是smac,那个可以成功搞定mac地址,并且重启os,也能够记住。开始我是随便编写了一个mac地址,后来发现本本的背面就贴着mac地址,直接抄下来设进去就可以了,很完美。


没想到是linux安装完毕后,也有这个问题,看来不是windows的问题,而是物理网卡确实有毛病了。


在网上搜了很多资料,如下有用:


1,单次修改ifconfig就可以搞定。ip命令也类似。


ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE


ip link set eth0 address 00:AA:BB:CC:DD:EE


2,macchanger命令也可以搞定。


macchanger --mac=01:23:45:67:89:AB eth0


macchanger需要用apt-get升级安装一下。


3,如果要长期有效,上述两个命令,需要加入自启动脚本里.


比如/etc/rc.local


4,在ubuntu下,可以写入/etc/network/interfaces文件。


pre-up ifconfig eth0 hw ether xx:xx:xx:xx:xx:xx


其中pre-up command本身就是指,Run command before bringing the interface up. 这个命令最合适了。


偶就用最后这个方法成功搞定问题,每次重启机器都能够连上网络了。


星期五, 六月 12, 2009

ubuntu and disk partition

最近不是很忙,抽出时间来试用一下火了很久的ubuntu。


看到ubuntu要出9.04后,就开始等待,等待的时候先下载8.10版本,在vmware workstation里测试了一下,感觉还可以用。


后来在T61上安装ubuntu904,有一个wubi.exe程序,可以直接把ubuntu压在xp的一个分区了。直接试了一把,当时安装完就傻眼了,系统启动不了,立马崩溃。当时硬盘里的重要数据都没备份,儿子最近的照片和视频很久没有刻盘和备份了,包括奥运的照片等等。


后来赶快用另一个本本查资料,居然当天将系统恢复了。是mbr修复一下就可以了。


但是修复以后,虽然系统能用了,但是使用PowerQuest PartitionMagic已经开始报错。


使用DiskGenius没有提示错误,但是显示的分区容量和实际磁盘容量已经不一致了。


后来,我的旧笔记本T41硬件故障修好了,在那个机器上完整安装一次ubuntu,体验了一下,还是可以用的,尤其是上网、看片之类的,都有相应软件支持,正常。给儿子体验ubuntu,他上去按了几个键,就弄出双屏左右滚动的界面,让我研究了半天,才知道他怎么按出那个效果来。ubuntu内置五子连珠游戏。


再后来,终于有一个周末没事做,下决心把T61的disk故障修好。


其实问题就在于wubi.exe中的分区把xp自己的分区给修改了,然后中间不知道出啥异常,导致分区数据故障。PowerQuest PartitionMagic能够检查出错误,但是它自身提供的修复,解决不了问题,连管理界面都进不去,而DiskGenius很好,能进管理界面,也能看到不一致的地方,也能提供扫描手动,只是它也不能一步搞定。最后手工试用DiskGenius修改了几个分区的参数,结合扫描旧分区的方法,算是搞定了问题,再使用PQ的时候,已经检查不到错误,一切恢复如初了,甚至连IBM预置的隐藏分区数据也被保留了。

星期四, 四月 09, 2009

近期值得关注的新产品VMware vSphere & ubuntu 9.04

VMware在4月21号将要推出vSphere堆栈(即我们之前熟知的Virtual Infrastructure 4),ESX Server 4.0管理程序和其相关的管理工具及附件都包括在即将发布的虚拟基础架构之中,让人觉得Virtual Infrastructure 3颇有些形单影只。

Ubuntu 9.04 Beta
For testing only! This is a pre-release version of Ubuntu and is almost ready for general use. If it is important that your computer run reliably please continue to use the current stable release (8.10) until this version is ready on April 23rd, 2009

星期五, 一月 23, 2009

虚拟化Virtualization

虚拟化技术是很火热的,被评为2009年十大技术之首,我是在2008年底开始学习了解这一技术。

业界有5个公司的产品比较著名:
vmware是当仁不让的领导者。vmotion的体验非常好,能够将内存中的东西快速迁移过去,实在是令人诧异。
Microsoft是凭借Hyper-V拥有很多用户。
SUN公司也有自己产品。SunRay是其虚拟桌面的一种技术。
Parallels公司,也就是原来的swSoft,产品有其自己特点,只能虚拟同类型操作系统。
Citrix是xensource的收购者,成功将XEN技术进行商品化包装,提供完整服务。

上述技术均有耳闻,且有不同程度的亲身体验。或许2009年能够将其中之一应用到生产环境中。

星期日, 十二月 28, 2008

heartbeat安装

在linux上作heartbeat的安装测试,事实证明,相当的简单。

1,下载安装文件。
事实证明,这里的软件相当的好用。
http://software.opensuse.org/download/server:/ha-clustering:/lha-2.1
2,安装。
rpm -ivh heartbeat-pils-2.1.4-2.1.x86_64.rpm
rpm -ivh heartbeat-stonith-2.1.4-2.1.x86_64.rpm
rpm -ivh heartbeat-2.1.4-2.1.x86_64.rpm
缺什么,就补什么。我遇到如下包:
rpm -ivh perl-TimeDate-1.16-5.el5.noarch.rpm
3,配置。
最重要的文件,只有3个:authkeys ha.cf haresources
cp /usr/share/doc/packages/heartbeat/authkeys /etc/ha.d/
cp /usr/share/doc/packages/heartbeat/ha.cf /etc/ha.d/
cp /usr/share/doc/packages/heartbeat/haresources /etc/ha.d/

vi /etc/ha.d/authkeys
vi /etc/ha.d/ha.cf
vi /etc/ha.d/haresources
这3个文件,如何配置,网上有很多文章。
4,注意事项。
注意ha.cf中的nodename必须是主机名,且与uname -n相同。
chmod 600 /etc/ha.d/authkeys
5,自启动。
ln -s /etc/init.d/heartbeat /etc/rc.d/rc0.d/K05heartbeat
ln -s /etc/init.d/heartbeat /etc/rc.d/rc3.d/S75heartbeat
ln -s /etc/init.d/heartbeat /etc/rc.d/rc5.d/S75heartbeat
ln -s /etc/init.d/heartbeat /etc/rc.d/rc6.d/K05heartbeat
(字母S和K为大写)
chkconfig --list heartbeat
6.管理
启动和关闭heartbeat的方法:
/etc/init.d/heartbeat start或service heartbeat start
/etc/init.d/heartbeat stop或service heartbeat stop
重读配置/etc/init.d/heartbeat reload

手工切换:/usr/share/heartbeat/hb_standby
手工接管:/usr/share/heartbeat/hb_takeover