FreeBSD 下挂载第二块 SCSI 硬盘

作者:wiLdGoose 发布时间:July 19, 2008 分类:技术 Technology

前段时间公司内部的版本库服务器存储空间吃紧,必须增加外部存储设备或者更换服务器。于是我面临了痛苦的选择:那台联想万全 T200 服役了近 10 年。早在不经意之中,就摩擦出了爱情的火花。更换服务器,她就面临着退役,我不忍;增加外存,我担心她太累,又心疼。

于是另购了一块希捷的 250GB SCSI 硬盘,拆开机箱,连上数据线和电源线,可开机后提示找不到可以启动的系统。于是重启,回到 BIOS 选项,发现硬盘根本没有被认到。我首先想到的是跳线,但不肯定 SCSI 硬盘也有跳线这样的说法。

再一次拆开机箱,拆下硬盘,重新观察了一下,确实有跳线这个东西。具体接法见下图:

重新接好,设置从老硬盘启动,终于进入 FreeBSD。接着 sysinstall,为第二块硬盘划分 partition 和 label。整个过程比较简单,值得注意的是需要 w 将信息写入。分区完成后,我是直接修改 /etc/fstab 的,也可以手动挂载,具体办法见这里

现在的启动信息:

Waiting 5 seconds for SCSI devices to settle
da0 at ahc0 bus 0 target 0 lun 0
da0: <QUANTUM ATLAS10K3_18_WLS 020W> Fixed Direct Access SCSI-3 device 
da0: 160.000MB/s transfers (80.000MHz, offset 127, 16bit), Tagged Queueing Enabled
da0: 17537MB (35916548 512 byte sectors: 255H 63S/T 2235C)
da1 at ahc0 bus 0 target 1 lun 0
da1: <SEAGATE ST3146707LW D704> Fixed Direct Access SCSI-3 device 
da1: 160.000MB/s transfers (80.000MHz, offset 63, 16bit), Tagged Queueing Enabled
da1: 140014MB (286749480 512 byte sectors: 255H 63S/T 17849C)
da2 at ahc0 bus 0 target 2 lun 0
da2: <SEAGATE ST3146707LW D704> Fixed Direct Access SCSI-3 device 
da2: 160.000MB/s transfers (80.000MHz, offset 63, 16bit), Tagged Queueing Enabled
da2: 140014MB (286749480 512 byte sectors: 255H 63S/T 17849C)

延缓死亡的手续到此结束。

让 SQL Sever 2000 支持 2GB 以上的物理内存

作者:wiLdGoose 发布时间:July 17, 2008 分类:技术 Technology

随着公司业务平台不断扩大,原先数据库服务器上 2GB 的物理内存已显得较为吃紧。前段时间,一狠心,在 DELL 下了一个 PowerEdge 2950 架构的单,直接上到 4GB。

数据库服务器最在意的事情就是数据存储的安全可靠。为此我订购了四块 SAS 硬盘,其中一块做系统盘,其余三块组成一个 RAID5 阵列。这机器成本不算低了,好歹性能也跟上去了,于是日子就这么继续……

最近发现服务器的物理内存占用情况比较有意思。无论我何时连上去看,物理内存占用量都在 1.5GB 至 1.75GB 左右,死活超不过 2GB。当然,绝大部分都被 SQL Server 所占用,但没有完全占用所有可用的剩余物理内存。而 SQL Server 被配置为动态地使用所有物理内存选项。整个情况非常神奇,让我禁不住啧啧赞叹……

这神奇的景象就像这样:

网上有文章说只要打开 /3GB 或者 /PAE 开关就可以,这样的说法是不准确的。

首先我们要分析当前操作系统是什么版本,是否需要开启 /3GB 或者 /PAE 开关。具体可以参阅微软的帮助支持中心的这篇文章。我的操作系统是 Windows Server 2003 Enterprise Edition,其本身就支持最高 32 GB 的物理内存,所以不需要打开这些开关。

我个人的理解是:如果机器上的物理内存并未被操作系统所完全识别,则需要根据操作系统的实际情况考虑打开这些开关。

另外,同时使用 /3GB 和 /PAE 开关是没有意义的。物理内存为 3GB 的时候使用 /3GB 开关,大于等于 4GB 就使用 /PAE 开关。关于 /3GB 开关的描述请见这里,关于 /PAE 开关的描述请见这里

一个需要开启 /PAE 开关的 boot.ini 的实例类似是这样的:

[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(2)\WINNT
[operating systems]
multi(0)disk(0)rdisk(0)partition(2)\WINNT="Windows Server 2000 Server" /noexecute=optout /fastdetect /PAE

如微软的文章中所说,检查完系统是否支持当前的物理内存后,然后需要启用 SQL Server 的 Address Windowing Extentions(AWE)支持。

要检查 AWE 是否已启用,请从 SQL 查询分析器运行以下脚本:

sp_configure 'show advanced options', 1
go
reconfigure
go
sp_configure 'awe enabled'
go

如果 run_value 设置为 1,则服务器上启用了 AWE。如果不是,请在 SQL 查询分析器中输入:

sp_configure 'show advanced options', 1
RECONFIGURE WITH OVERRIDE
GO
sp_configure 'awe enabled', 1
RECONFIGURE WITH OVERRIDE
GO
sp_configure 'max server memory', 4096
RECONFIGURE WITH OVERRIDE
GO

请注意,这里的 4096 适用 4GB 物理内存的系统。如果是 6GB,这个数字应改成 1024 * 6,其他情况依此类推。

值得特别说明的是,微软的原文介绍使用 RECONFIGURE 命令,而我将之改为强制更新的 RECONFIGURE WITH OVERRIDE 命令。其最终效果是一样的,只不过有些情况下 RECONFIGURE 无法完成工作。

到此为止,理论上 SQL Server 应该可以支持 2GB 以上的物理内存了。但某种情况下,依然不行。为何?我们再来看微软的一篇文章

这里说到这样一个问题:启用了 AWE 支持,但单个 SQL Server 2000 实例还是只能使用计算机上最多 50% 的物理内存。

很不幸地,这个问题被我遇到了。经过一番折腾后,服务器的内存使用量还是在 1.75GB 左右徘徊。这个属于 SQL Server 早期版本中的一个漏洞,该问题只发生在具有超过 2 GB RAM 的计算机上运行于基于 x86 或基于 x64 的计算机上的 32 位版本的 SQL Server 2000 Service Pack 4 中。要查看此现象,请检查系统监视器中的“SQL Server:内存管理器 / 总的服务器内存(KB)”计数器。在运行 SQL Server Service Pack 3(SP3)的计算机上,该值最大可以为计算机上的物理内存量。在运行 SQL Server SP4 的计算机上,该值永远不会超过物理内存的 50%。

下载一个 8MB 的补丁,打了就好。

实践证明,现在的内存使用量已经达到了我们 BT 的要求了:

这样一番折腾之后,任务管理器可能会变得无法准确提供内存使用信息,原因请见这里

最后补充,无论是打开 /3GB 或 /PAE 开关,还是开启 SQL Server 的 AWE 支持,还是打 for SQL Server SP4 的修复补丁,系统必须重启才能生效。

Typecho:您的文字、您的世界

作者:wiLdGoose 发布时间:July 8, 2008 分类:技术 Technology

2008 年 7 月 8 日,距离奥运会 30 天倒计时。今天同样是一个激动人心的日子、一个值得纪念的日子。由 70 同学领衔的原 Magike 项目组对外宣布新项目 Typecho 的成立。

从 exBlog 到 Magike,再到 Typecho,风雨同舟、荣辱与共,我们一路走来

Typecho 是否会成为中国版的 WP?今天是否会成为国内开源博客项目的里程碑?让我们拭目以待。

项目组内的 70 同学sluke 同学水水同学都相继撰文表达了他们对 Typecho 出世、祖国河山一片和谐的喜悦心情。

关于从 Magike 更名为 Typecho 的缘由,请参见这里

开源传万世,您我共参与。我们热忱期待您参与项目的任何工作,代码、文档等等……

关于如何贡献代码、参与项目,请参阅 http://www.typecho.org/contribute

Typecho 项目主页:www.typecho.org,开发日志主页:www.typecho.net

开源之路任重而道远,愿 Typecho 一路走好。

搭建无 MySQL Server 的 PHP 环境

作者:wiLdGoose 发布时间:July 2, 2008 分类:技术 Technology

AMP 环境在当前互联网的 Web 应用中被越来越多地采用。Web 程序员除了编写脚本代码之外,多多少少也会对 AMP 环境了解一些。随着时间的推移,有些人的兴趣点可能从原先的脚本代码转向服务器应用环境,从而走向系统架构工程、运维工作方向的不归路。

我也承认我自己就是这样喜新厌旧的坏人。

很多时候,仅仅会搭建 AMP 环境,对于一个初级 Linux 系统管理员来说,都是远远不够的。操作系统五花八门,各种环境纷繁复杂,各种应用需求花样百出。这些都迫使着 OMers(系统管理员或是网络管理员)不停地在一个固定大小的框框内实现各种各样的部署。

前段时间我就遇到了这么一个事情。

就一般应用而言,AMP 环境往往搭建在同一台服务器上。但随着实体业务的扩展、系统负载的增加,我们会考虑将数据库应用独立到另一台单独的服务器上。这就牵扯出来一个问题,MySQL 是装还是不装?

如果不装 MySQL,想必 PHP 脚本没有系统库文件的支持,无法与数据库取得通讯。如果装,就不会出现上述情况;而且也没有什么大碍,大不了不启动 MySQL 嘛。但总觉得这样不够完美,不够有洁癖,不够有 BT 的作风。

在我来来回回 copy 一些库文件无果,折腾了 N 久几乎快妥协放弃的时候,有了下面一段配置代码:

#!/bin/sh
# mysql configure
./configure --prefix=/usr/local/mysql --enable-assembler \
            --disable-largefile --with-charset=gbk \
            --with-pthread --with-zlib-dir=/usr \
            --without-debug --with-openssl=/usr --without-docs \
            --without-man --without-server

原来,--without-server 就行了。

其实,这不是一个复杂或者深奥的问题。./configure --help 也一样能找到答案。只是很少有人会去关注她,于是她注定成为了羊群中披着羊皮的狼,抑或是狼群中披着狼皮的羊。

IIS 400 错误的特殊可能性

作者:wiLdGoose 发布时间:June 5, 2008 分类:技术 Technology

一直很少接触 IIS,觉得那是个繁冗的玩意,无法与 Apache 的简便快捷相比。前几天在折腾一台服务器,Windows 操作系统。由于种种特殊的、奇怪的、必要的原因,它所提供的 Web 服务必须使用 IIS 支持。

添加 IIS 所需要的组件后,转到 IIS 管理器,修改默认监听 IP,修改默认站点属性,绑定主机头,指向到文件所在目录,修改站点默认首页,去除默认应用程序池的支持,设置站点权限。一口气完成后,重启 IIS,转到浏览器一看,Service Unavailable,400 错误。

看了微软的技术文章,上面提供的解决方案如同狗屁。多次 Google 后,找到这篇文章。原来我和那位朋友一样,犯了一个非常低级的错误。

回到 IIS 管理器,启动应用程序池,一切都好了。自我批评一下,谨此纪念我的哈尔滨之行。

  1. 1
  2. ...
  3. 5
  4. 6
  5. 7
  6. 8
  7. 9
  8. 10
  9. 11
  10. ...
  11. 14