跳到内容

文章类别:服务器

RAID 0,给跪了

两个服务器,阵列全部做成RAID 0,终于遭了…

RAID 0 并不是真正的RAID结构,没有数据冗余。RAID 0 连续地分割数据并并行地读/写于多个磁盘上. 因此具有很高的数据传输率, 但RAID 0在提高性能的同时,并没有提供数据可靠性,如果一个磁盘失效,将影响整个数据。因此RAID 0 不可应用于需要数据高可用性的关键应用。

RAID 0的缺点是不提供数据冗余,因此一旦用户数据损坏,损坏的数据将无法得到恢复。RAID0运行时只要其中任一块硬盘出现问题就会导致整个数据的故障。一般不建议企业用户单独使用

RAID 0具有的特点,使其特别适用于对性能要求较高,而对数据安全不太在乎的领域,如图形工作站等。对于个人用户,RAID 0也是提高硬盘存储性能的绝佳选择。

当初的搭建服务器的管理员杳无音信,没有留下任何信息,

从接手管理,一直在收拾各种遗留问题.

旧的一台两块160G组成RAID 0,新的一台两块1T组成一台RAID 0,

真的搞不懂了,

旧的服务器用作邮件服务器,几百用户,160G怎么也够用了,

还要损失安全性追求速度去做个RAID 0,

新服务器用作文件存储,使用率按百分比只有个位数,也去做个RAID 0.

这种状况也许跟用户有一定关系,

用户只管一时爽,反正坏了有人给修,

可是硬盘挂B了,就要拿去做数据恢复,数据可能泄漏不说,

数据恢复价格都是以K计算的啊.

现在硬盘挂B了…

这就面临两种选择,继续修和换新的.

之前看过关于沉没成本的文章,

用户往往在意之前的投入,而在做出正确决定时有所犹豫,

2001年诺贝尔经济学奖得主斯蒂格利茨教授说,普通人(非经济学家)常常不计算“机会成本”,而经济学家则往往忽略“沉淀成本”———这是一种睿智。他在《经济学》一书中说:“如果一项开支已经付出并且不管作出何种选择都不能收回,一个理性的人就会忽略它。这类支出称为沉淀成本(sunkcost)。

从一个管理员的角度来看,用户应当放弃问题百出旧系统,将投资用于新系统.

尽管在旧服务器上投入了很多,但它已经以家用机的体质,服务器的身份连续工作了5年,

依然在运行六七年前的闭源破解软件,

时不时死机崩溃,服务中断,

这些理由还不足够换一台新的服务器么?

说了一堆废话,还得赶文件给上面汇报,下一步进行数据恢复.

特殊IP地址及专用IP地址

255.255.255.255 全1——受限广播地址

广播通信是一对所有的通信方式。受限广播地址用于定义整个互联网。如果设备想使IP数据报被整个Internet所接收,就发送这个目的地址全为1的广播包,但这样会给整个互联网带来灾难性的负担。在任何情况下,路由器都会禁止转发目的地址为受限的广播地址的数据包,这样的数据包仅会出现在本地网络中。对本机来说,这个地址指本网段内(同一个广播域)的所有主机,该地址用于主机配置过程中IP数据包的目的地址,这时主机可能还不知道它所在网络的网络掩码,甚至连它的IP地址也还不知道。

网络号:特定 主机号:全1——直接广播地址

一个网络中的最后一个地址为直接广播地址。主机使用这种地址把一个IP数据报发送到本地网段的所有设备上,路由器会转发这种数据报到特定网络上的所有主机。
注意:这个地址在IP数据报中只能作为目的地址。另外,直接广播地址使一个网段中可分配给设备的地址数减少了1个。

前四bit:1110 , 224.*.*.*~239.*.*.*——多播地址——D类地址(A类:0,B类10,C类:110,D类1110,E类11110)

多播地址用在一对多的通信中。多播通信就是从单个源地址把分组发送到一组目的设备。多播地址属于分类编址中的D类地址,一个地址串就代表一个GroupID,Internet上的设备可以有一个或多个GroupID。
注意:D类地址只能用作目的地址,而不能作为分组中的源地址。

网络号:全0 , 主机号:特定

当某个主机向同一网段上的其他主机发送报文时就可以使用这样的地址,分组也不会被路由器转发。

0.0.0.0——全0

这个IP地址在IP数据报中只能用作源IP地址,这发生在当设备启动时但又不知道自己的IP地址情况下。在使用DHCP分配IP地址的网络环境中,这样的地址是很常见的。用户主机为了获得一个可用的IP地址,就给DHCP服务器发送IP分组,并用这样的地址作为源地址,目的地址为255.255.255.255(因为主机这时还不知道DHCP服务器的IP地址)。

网络号:01111111 , 127.*.*.*———环回地址

127网段的所有地址都称为环回地址,主要用来测试网络协议是否工作正常的作用。比如使用ping 127.1.1.1就可以测试本地TCP/IP协议是否已正确安装。另外一个用途是当客户进程用环回地址发送报文给位于同一台机器上的服务器进程,比如在浏览器里输入127.1.2.3,这样可以在排除网络路由的情况下用来测试IIS是否正常启动。在Windows系统中,127.0.0.1这个地址有一个别名“localhost”。

10.*.*.* , 172.16.*.*~172.31.*.* , 192.168.*.*——专用地址

上面三个网段是私有地址,可以用于自己组网使用,这些地址主要用于企业内部网络中,但不能够在Internet网上使用,Internet网没有这些地址的路由,而使用这三个网段的计算机要上网必须要通过地址翻译(NAT),将私有地址翻译成公用合法的IP地址。一些带宽路由器或是其它的网络设备,往往使用192.168.1.1作为缺省的地址,由于私有个人网络不会与外部互连,所以可以使用随意的IP地址,保留这三个网段的IP 地址使其使用,是为了避免以后接入公网时引起地址混乱。

169.254.*.*

如果设备获得了类似169.254.*.*这样的IP地址,说明您的DHCP有问题。在Windows系统中,如果DHCP客户端无法联系到DHCP服务器,客户端会根据自身的注册表,把自己的IP设置为168.254.*.*这样的地址。

对一台网络上的主机来说,它可以正常接收的合法目的网络地址有三种:本机的IP地址、广播地址以及组播地址。

【前端开发遇车祸成植物人,IE6将他唤醒】

【前端开发遇车祸成植物人,IE6将他唤醒】

北京程序员王xx遭遇车祸成植物人,医生说活下来希望只有万分之一,唤醒更为渺茫。

他的Leader和亲人没放弃,他们根据王xx视工作如命的作风,每天都在他身边念:

“xxIE6侧边栏又乱了,线上BUG啊!快起来改!”

奇迹发生,王醒来,第一句话:

我这是好的。

2位PIC主板诊断卡代码大全(纯复制)

故障代码含义速查表查表必读:(注意事项)
一 特殊代码“00”和“FF”及其它起始码有三种情况出现:
①已由一系列其它代码之后再出现:“00”或“FF”,则主板OK。
②如果将CMOS中设置无错误,则不严重的故障不会影响BIOS自检的继续,而最终出现“00”或“FF”。
③一开机就出现“00”或“FF”或其它起始代码并且不变化则为主板没有运行起来。
二 本表是按代码值从小到大排序,卡中出码顺序不定。
三 未定义的代码表中未列出。
四 对于不同BIOS(常用的AMI、Award、Phoenix)用同一代码所代表的意义有所不同,
因此应弄清您所检测的电脑是属于哪一种类型的BIOS,
您可查问你的电脑使用手册,或从主板上的BIOS芯片上直接查看,也可以在启动屏幕时直接看到。
五 有少数主板的PCI槽只有前一部分代码出现,但ISA槽则有完整自检代码输出。
且目前已发现有极个别原装机主板的ISA槽无代码输出,而PCI槽则有完整代码输出,
故建议您在查看代码不成功时,将本双槽卡换到另一种插槽试一下。
另外,同一块主板的不同PCI槽,有的槽有完整代码送出,
如DELL810主板只有靠近CPU的一个PCI槽有完整的代码显示,一直变化到“00”或“FF”,而其它槽走到“38”则不继续变化。
六 复位信号所需时间ISA与PCI不一定同步,故有可能ISA开始出代码,但PCI的复位灯还不熄,故PCI代码停在起始码上。
主板诊断卡代码速查 Award BIOS/Ami BIOS Phoenix BIOS/Tandy3000 BIOS

代码说明 阅读更多 »

编译Subversion模块,搭建基于apache的SVN服务器

如果要协同工作,代码版本的控制就显得非常重要,

是一个不错的选择.

本文针对使用自己编译apache作为网页服务器软件,且有在线浏览项目的的情况,

以下所有均在网页服务器可以正常运作的情况下进行,

没有apache的请先编译安装apache,本文不适于apt-get安装的apache.

对于apt-get安装的apache,网上方法较多,在此不谈.

声明:文中的代码不能直接使用,请根据自身情况作出修改!

下面开始,

首先至Subversion下载页面,下载最新的版本,格式由于本机是debian,故选择.tar.gz

存至所需位置,例如/usr/local/src,

也可在命令行中输入:

wget -c http://labs.renren.com/apache-mirror/subversion/subversion-1.7.1.tar.gz /usr/local/src

(选择人人源,-c表示续传,至2011.12.03最新版为1.7.1)

下载好后执行命令解包:

tar -zxvf subversion-1.7.1.tar.gz -C /usr/local/src

(.tar.gz使用-z,.tar.bz2使用-j)

进入源码目录然后运行命令进行编译:<

./configure –prefix=/usr/local/subversion –with-apxs=/usr/local/apache2/bin/apxs –with-ssl –enable-maintainer-mode –enable-dav –enable-dav-fs –enable-dav-lock

结果提示错误configure: error: Subversion requires SQLite

到网上查了一下,新版的Subversion是要求SQLite来存数据的,

为此网上还有一个系统管理员的咆哮,感觉挺搞笑的,地址在这

解决办法:

SQLite下载页面去下一个回来,或者

wget -c http://www.sqlite.org/sqlite-autoconf-3070900.tar.gz

然后解包

tar -xvzf sqlite-autoconf-3070900.tar.gz -C /usr/local/src/

把里面的sqlite3.c复制到subversion的sqlite-amalgamation目录下,没有的自己mkdir

mkdir sqlite-amalgamation

cp ../sqlite-autoconf-3070900/sqlite3.c sqlite-amalgamation/

重新运行编译命令:

./configure –prefix=/usr/local/subversion –with-apxs=/usr/local/apache2/bin/apxs –with-ssl –enable-maintainer-mode –enable-dav –enable-dav-fs –enable-dav-lock

如果最后出现下面WARNING,我们直接忽略即可,因为不使用BDB存储.

configure: WARNING: we have configured without BDB filesystem support

You don’t seem to have Berkeley DB version 4.0.14 or newer
installed and linked to APR-UTIL. We have created Makefiles which
will build without the Berkeley DB back-end; your repositories will
use FSFS as the default back-end. You can find the latest version of
Berkeley DB here:

http://www.sleepycat.com/download/index.shtml

下面安装命令:

make && make install

安装完毕测试是否安装成功:

/usr/local/svn/bin/svnserve –version

如果出现如下提示则说明安装成功:

svnserve, version 1.7.1 (r1186859)
compiled Dec 3 2011, 08:07:10

Copyright (C) 2011 The Apache Software Foundation.
This software consists of contributions made by many people; see the NOTICE
file for more information.
Subversion is open source software, see http://subversion.apache.org/

The following repository back-end (FS) modules are available:

* fs_fs : Module for working with a plain file (FSFS) repository.

 

下面配置svn服务器,

首先生成一个项目的目录(自定):

mkdir /var/www/html/svn/project1

然后生成项目的配置文件:

svnadmin create /var/www/html/svn/project1

修改配置:

vi /var/www/html/svn/project1/conf/svnserve.conf

将其中的如下4项去掉注释并修改:

anon-access = none
auth-access = write
password-db = passwd
authz-db = authz

注意:对用户配置文件的修改立即生效,不必重启svn.

然后设置项目的帐号密码:

vim /var/www/html/svn/project1/conf/passwd

在下面添加用户和密码,每行一组 username = password 保存.

待续…

脑袋晕了,太多问题了,刚刚检查了一下apache载入的模块,发现根本没有svn,

手动把

LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so

写入httpd.conf立马报错:undefined symbol: dav_register_provider

网上说是apache当初编译的时候没启用davweb支持,而这个是svn必需的,

只好重新编译apache……

./configure –prefix=/usr/local/apache2 –enable-dav –enable-so –enable-maintainer-mode –enable-rewrite

然后make && make install

在按回车的瞬间意识到,我没备份!!!

试了一下网站果然上不去了,赶紧看配置文件,还好都在……

结果又出问题了:module rewrite_module is built-in and can’t be loaded

rewrite模块是我后来单独编译的,apache的原始安装是没有的,

就多了一句:LoadModule rewrite_module modules/mod_rewrite.so

在上网查,原来是重新编译的时候,rewrite已经内嵌了,就不用再载入rewrite模块,

加#注释掉/apachectl start,好了.

他妹子的,我再休息一下….

既然重新编译了apache,Subversion还是也重新编译一下吧,

方法上面有,

然后再httpd.conf最后加上:

LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
<Location /svn>
DAV svn
SVNParentPath /var/www/html/svn/project1  //svn父目录
AuthzSVNAccessFile /svn/porject1/conf/passwd //权限配置文件
AuthType Basic //连接类型设置
AuthName “Subversion.zoneyump” //连接框提示
AuthUserFile /svn/porject1/conf/authz //用户配置文件
Require valid-user //采用何种认证
</Location>

重启apache然后登录http://域名/svn,

出现了用户密码的登录框,

输入用户密码可以登录进去,不过是500错误,

应该是没有权限,接下来设置……

待续…

果然文章一断就续不起来了,这篇文章实在写不下去了,

准备再次投入到svn的时候,发现了git,决定一试,

至于svn权限设置网上有很多,就不折腾了.