Jul 102007
 

前几天购买的Hostmonster的Hosting plan跑得好好得突然挂了。检查发现traceroute从骨干网就过不去了,看来是被某BOSS级隐藏超级设备给吃了,无奈搬回Dreamhost。

最近发现比较有空,就仔细研究了一下Dreamhost的基础架构,发现还是很有意思的,记录如下,不断补充中。

须知这些资料都是在没有root权限的情况下通过各种手段取得的,对于Dreamhost来说可能是不希望外人知道的,但任何一个Dreamhoster都可以通过合法的shell拿到这些资料。

首先是硬件信息,第一想到的就是CPU了,很简单,cat /proc/cpuinfo,如下:

/home/dawnh>cat /proc/cpuinfo
processor : 0
vendor_id : AuthenticAMD
cpu family : 15
model  : 35
model name : Dual Core AMD Opteron(tm) Processor 175
stepping : 2
cpu MHz  : 2194.610
cache size : 1024 KB
fdiv_bug : no
hlt_bug  : no
f00f_bug : no
coma_bug : no
fpu  : yes
fpu_exception : yes
cpuid level : 1
wp  : yes
flags  : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse
sse2 ht syscall mmxext lm 3dnowext 3dnow pni
bogomips : 4377.80

processor : 1
vendor_id : AuthenticAMD
cpu family : 15
model  : 35
model name : Dual Core AMD Opteron(tm) Processor 175
stepping : 2
cpu MHz  : 2194.610
cache size : 1024 KB
fdiv_bug : no
hlt_bug  : no
f00f_bug : no
coma_bug : no
fpu  : yes
fpu_exception : yes
cpuid level : 1
wp  : yes
flags  : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse
sse2 ht syscall mmxext lm 3dnowext 3dnow pni
bogomips : 4377.80
home/dawnh>

可见是一个双核的Opteron 175,频率2.2G。

其次是内存,如下:

/home/dawnh>cat /proc/meminfo
        total:    used:    free:  shared: buffers:  cached:
Mem:  4172861440 4017307648 155553792        0 155500544 2532347904
Swap: 6465036288 283750400 6181285888
MemTotal:      4075060 kB
MemFree:        151908 kB
MemShared:           0 kB
Buffers:        151856 kB
Cached:        2426400 kB
SwapCached:      46596 kB
Active:         835288 kB
Inactive:      1789812 kB
HighTotal:     3211200 kB
HighFree:        14792 kB
LowTotal:       863860 kB
LowFree:        137116 kB
SwapTotal:     6313512 kB
SwapFree:      6036412 kB

可见物理内存4G,另外加了6G的swap,这里对于swap容量感到有点奇怪,为什么要分这么大,难道有什么依据么?

再是主板,这方面的资料恐怕不太好获取,经常采用的方法是dmesg,但dreamhost限制了这个文件的浏览权限,使得我们无法获取,但是通过总线挂接的设备大多能获得一些资料:

/home/dawnh>lspci
0000:00:01.0 PCI bridge: ServerWorks: Unknown device 0036
0000:00:02.0 Host bridge: ServerWorks: Unknown device 0205
0000:00:02.1 IDE interface: ServerWorks: Unknown device 0214
0000:00:02.2 ISA bridge: ServerWorks: Unknown device 0234
0000:00:03.0 USB Controller: ServerWorks: Unknown device 0223 (rev 01)
0000:00:03.1 USB Controller: ServerWorks: Unknown device 0223 (rev 01)
0000:00:03.2 USB Controller: ServerWorks: Unknown device 0223 (rev 01)
0000:00:05.0 VGA compatible controller: ATI Technologies Inc Rage XL (rev 27)
0000:00:18.0 Host bridge: Advanced Micro Devices [AMD] K8 NorthBridge
0000:00:18.1 Host bridge: Advanced Micro Devices [AMD] K8 NorthBridge
0000:00:18.2 Host bridge: Advanced Micro Devices [AMD] K8 NorthBridge
0000:00:18.3 Host bridge: Advanced Micro Devices [AMD] K8 NorthBridge
0000:01:0d.0 PCI bridge: ServerWorks: Unknown device 0104 (rev b2)
0000:01:0e.0 RAID bus controller: ServerWorks: Unknown device 024a
0000:02:03.0 Ethernet controller: Broadcom Corporation NetXtreme BCM5704 Gigabit Ethernet (rev 10)
0000:02:03.1 Ethernet controller: Broadcom Corporation NetXtreme BCM5704 Gigabit Ethernet (rev 10)

这里可以看到一个熟悉的字眼:ServerWorks,这是为AMD的CPU生产芯片组的一个品牌,因此可以断定主板芯片组出自ServerWorks之手,同时还能看到集成RageXL的显示芯片,以及Broadcom 5704的双千兆网卡。由于发行版自带的lspci中id数据库版本过低,包括北桥芯片等信息都是Unknown,看不出来。或许可以通过查PCI ID对应找到相应设备,以后有空再作吧。

这里留个问题:谁还知道查看主板芯片组信息的其他好方法?
再其次是存储设备了,首先想到的是fdisk -l,结果发现权限不够,继续在/proc里找寻,发现:

/home/dawnh>cat /proc/scsi/scsi
Attached devices:
Host: scsi0 Channel: 00 Id: 00 Lun: 00
  Vendor: ATA      Model: WDC WD800JD-00LS Rev: 06.0
  Type:   Direct-Access                    ANSI SCSI revision: 05

其中WDC WD800JD很明显是西部数据(WestData)的硬盘型号,放狗,发现是一个80G Sata2硬盘,在整个系统中就只发现这一个硬盘,基本上,可以把它当作sda了,关于分区和文件系统的信息,后面详述。

关于硬件基本上就只能拿到这么点信息了,下面是软件,集中在操作系统以及各种应用服务的配置。

第一个一定是uname -a了,如下:

/home/dawnh>uname -a
Linux caprisun 2.4.32-grsec+f6b+gr217+nfs+a32+fuse23+tg+++opt+c8+gr2b-v6.194 #1 SMP Tue Jun 6 15:52:09 PDT 2006
 i686 GNU/Linux

从这里只能看到是用了2.4.32内核的Linux,至于后面一长串加号的东西,难道是某个发行版特有的标记?或者是DH的sysadmin编译内核中加入某些功能的标记?在下只能看出第一个应该是grsecurity,还有nfs,fuse,有知道更详细的兄弟看到此文麻烦给我补补课。

又来问题了:印象里如果物理内存达到4G最好应该使用64位内核,32位的3G用户地址范围+1G内核地址范围会导致无法充分利用物理内存,DH这里又是因为什么考虑采用了i686?

光有uname显然不够,恐怕我们最关心的是发行版吧,看看如此著名的Webhosting公司是选用了何种发行版,答案是:

/home/dawnh>cat /etc/issue
Debian GNU/Linux 3.1 \n \l

Debian,3.1版应该是Sarge吧。

关心完内核,接下来应该是硬盘分区了,Linux初学者经常会考虑硬盘该怎么分区的问题,来看看DH是怎么分的:

/home/dawnh>mount
/dev/sda1 on / type ext3 (rw,noatime,nodiratime,commit=300,errors=remount-ro)
proc on /proc type proc (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
usbfs on /proc/bus/usb type usbfs (rw)
/dev/sda3 on /usr/local type ext3 (rw,noatime,nodiratime,data=ordered,commit=300)
/dev/sda8 on /usr/local/tmp type ext3 (rw,noexec,noatime,nodiratime,data=ordered,commit=300)
10.3.45.236:/vol/fuchsia/spacey/adam_bliss on /home/.flipside/adam_bliss type nfs (rw,intr,vers=3,bg,rsize=32768,wsize=32768,tcp,acregmin=300,acdirmin=300,acregmax=600,acdirmax=600,addr=10.3.45.236)
10.3.45.236:/vol/fuchsia.narc/spacey/adam_bliss on /home/.flipside/adam_bliss/.snapshot type nfs (rw,intr,vers=3,bg,rsize=32768,wsize=32768,tcp,acregmin=300,acdirmin=300,acregmax=600,acdirmax=600,addr=10.3.45.236)
10.3.45.236:/mnt/e1664/spacey/flype on /home/.flipside/flype type nfs (rw,intr,vers=3,bg,rsize=32768,wsize=32768,tcp,acregmin=300,acdirmin=300,acregmax=600,acdirmax=600,addr=10.3.45.236)
10.3.45.236:/mnt/e1664.narc/spacey/flype on /home/.flipside/flype/.snapshot type nfs (rw,intr,vers=3,bg,rsize=32768,wsize=32768,tcp,acregmin=300,acdirmin=300,acregmax=600,acdirmax=600,addr=10.3.45.236)
10.3.45.236:/mnt/e1664/spacey/hadriel on /home/.flipside/hadriel type nfs (rw,intr,vers=3,bg,rsize=32768,wsize=32768,tcp,acregmin=300,acdirmin=300,acregmax=600,acdirmax=600,addr=10.3.45.236)
10.3.45.236:/mnt/e1664.narc/spacey/hadriel on /home/.flipside/hadriel/.snapshot type nfs (rw,intr,vers=3,bg,rsize=32768,wsize=32768,tcp,acregmin=300,acdirmin=300,acregmax=600,acdirmax=600,addr=10.3.45.236)
10.3.45.236:/mnt/e1664/spacey/klabusta on /home/.flipside/klabusta type nfs (rw,intr,vers=3,bg,rsize=32768,wsize=32768,tcp,acregmin=300,acdirmin=300,acregmax=600,acdirmax=600,addr=10.3.45.236)
10.3.45.236:/mnt/e1664.narc/spacey/klabusta on /home/.flipside/klabusta/.snapshot type nfs (rw,intr,vers=3,bg,rsize=32768,wsize=32768,tcp,acregmin=300,acdirmin=300,acregmax=600,acdirmax=600,addr=10.3.45.236)
10.3.45.236:/vol/tope/spacey/mytest on /home/.flipside/mytest type nfs (rw,intr,vers=3,bg,rsize=32768,wsize=32768,tcp,acregmin=300,acdirmin=300,acregmax=600,acdirmax=600,addr=10.3.45.236)
10.3.45.236:/vol/tope.narc/spacey/mytest on /home/.flipside/mytest/.snapshot type nfs (rw,intr,vers=3,bg,rsize=32768,wsize=32768,tcp,acregmin=300,acdirmin=300,acregmax=600,acdirmax=600,addr=10.3.45.236)
10.3.45.10:/vol/boot/spacey/mcduff on /home/.mcduff type nfs (rw,intr,vers=3,bg,rsize=32768,wsize=32768,tcp,acregmin=300,acdirmin=300,acregmax=600,acdirmax=600,addr=10.3.45.10)
10.3.45.86:/vol/boot/spacey/mckinley on /home/.mckinley type nfs (rw,intr,vers=3,bg,rsize=32768,wsize=32768,tcp,acregmin=300,acdirmin=300,acregmax=600,acdirmax=600,addr=10.3.45.86)
10.3.45.10:/vol/boot/spacey/meaghan on /home/.meaghan type nfs (rw,intr,vers=3,bg,rsize=32768,wsize=32768,tcp,acregmin=300,acdirmin=300,acregmax=600,acdirmax=600,addr=10.3.45.10)
10.3.45.10:/vol/boot/spacey/medea on /home/.medea type nfs (rw,intr,vers=3,bg,rsize=32768,wsize=32768,tcp,acregmin=300,acdirmin=300,acregmax=600,acdirmax=600,addr=10.3.45.10)
10.3.45.10:/vol/boot/spacey/meely on /home/.meely type nfs (rw,intr,vers=3,bg,rsize=32768,wsize=32768,tcp,acregmin=300,acdirmin=300,acregmax=600,acdirmax=600,addr=10.3.45.10)
10.3.45.10:/vol/boot/spacey/megan on /home/.megan type nfs (rw,intr,vers=3,bg,rsize=32768,wsize=32768,tcp,acregmin=300,acdirmin=300,acregmax=600,acdirmax=600,addr=10.3.45.10)
10.3.45.10:/vol/boot/spacey/meko on /home/.meko type nfs (rw,intr,vers=3,bg,rsize=32768,wsize=32768,tcp,acregmin=300,acdirmin=300,acregmax=600,acdirmax=600,addr=10.3.45.10)
10.3.45.10:/vol/boot/spacey/melanistic on /home/.melanistic type nfs (rw,intr,vers=3,bg,rsize=32768,wsize=32768,tcp,acregmin=300,acdirmin=300,acregmax=600,acdirmax=600,addr=10.3.45.10)
10.3.45.10:/vol/boot/spacey/melinder on /home/.melinder type nfs (rw,intr,vers=3,bg,rsize=32768,wsize=32768,tcp,acregmin=300,acdirmin=300,acregmax=600,acdirmax=600,addr=10.3.45.10)
10.3.45.139:/vol/boot/spacey/melitrissa on /home/.melitrissa type nfs (rw,intr,vers=3,bg,rsize=32768,wsize=32768,tcp,acregmin=300,acdirmin=300,acregmax=600,acdirmax=600,addr=10.3.45.139)
10.3.45.10:/vol/boot/spacey/melosa on /home/.melosa type nfs (rw,intr,vers=3,bg,rsize=32768,wsize=32768,tcp,acregmin=300,acdirmin=300,acregmax=600,acdirmax=600,addr=10.3.45.10)
10.3.45.10:/vol/boot/spacey/memo on /home/.memo type nfs (rw,intr,vers=3,bg,rsize=32768,wsize=32768,tcp,acregmin=300,acdirmin=300,acregmax=600,acdirmax=600,addr=10.3.45.10)
10.3.45.10:/vol/boot/spacey/meower on /home/.meower type nfs (rw,intr,vers=3,bg,rsize=32768,wsize=32768,tcp,acregmin=300,acdirmin=300,acregmax=600,acdirmax=600,addr=10.3.45.10)
10.3.45.10:/vol/boot/spacey/mephistopheles on /home/.mephistopheles type nfs (rw,intr,vers=3,bg,rsize=32768,wsize=32768,tcp,acregmin=300,acdirmin=300,acregmax=600,acdirmax=600,addr=10.3.45.10)
10.3.45.10:/vol/boot/spacey/mercutio on /home/.mercutio type nfs (rw,intr,vers=3,bg,rsize=32768,wsize=32768,tcp,acregmin=300,acdirmin=300,acregmax=600,acdirmax=600,addr=10.3.45.10)
10.3.45.10:/vol/boot/spacey/meri on /home/.meri type nfs (rw,intr,vers=3,bg,rsize=32768,wsize=32768,tcp,acregmin=300,acdirmin=300,acregmax=600,acdirmax=600,addr=10.3.45.10)
10.3.45.10:/vol/boot/spacey/merlot on /home/.merlot type nfs (rw,intr,vers=3,bg,rsize=32768,wsize=32768,tcp,acregmin=300,acdirmin=300,acregmax=600,acdirmax=600,addr=10.3.45.10)
10.3.45.10:/vol/boot/spacey/meryl on /home/.meryl type nfs (rw,intr,vers=3,bg,rsize=32768,wsize=32768,tcp,acregmin=300,acdirmin=300,acregmax=600,acdirmax=600,addr=10.3.45.10)
10.3.45.10:/vol/boot/spacey/messier on /home/.messier type nfs (rw,intr,vers=3,bg,rsize=32768,wsize=32768,tcp,acregmin=300,acdirmin=300,acregmax=600,acdirmax=600,addr=10.3.45.10)
10.3.45.138:/vol/boot/spacey/metoo on /home/.metoo type nfs (rw,intr,vers=3,bg,rsize=32768,wsize=32768,tcp,acregmin=300,acdirmin=300,acregmax=600,acdirmax=600,addr=10.3.45.138)
10.3.45.10:/vol/boot/spacey/mew on /home/.mew type nfs (rw,intr,vers=3,bg,rsize=32768,wsize=32768,tcp,acregmin=300,acdirmin=300,acregmax=600,acdirmax=600,addr=10.3.45.10)
10.3.45.51:/vol/boot/spacey/micael on /home/.micael type nfs (rw,intr,vers=3,bg,rsize=32768,wsize=32768,tcp,acregmin=300,acdirmin=300,acregmax=600,acdirmax=600,addr=10.3.45.51)
10.3.45.86:/vol/boot/spacey/michant on /home/.michant type nfs (rw,intr,vers=3,bg,rsize=32768,wsize=32768,tcp,acregmin=300,acdirmin=300,acregmax=600,acdirmax=600,addr=10.3.45.86)
10.3.45.10:/vol/boot/spacey/micki on /home/.micki type nfs (rw,intr,vers=3,bg,rsize=32768,wsize=32768,tcp,acregmin=300,acdirmin=300,acregmax=600,acdirmax=600,addr=10.3.45.10)
10.3.45.51:/vol/boot/spacey/middles on /home/.middles type nfs (rw,intr,vers=3,bg,rsize=32768,wsize=32768,tcp,acregmin=300,acdirmin=300,acregmax=600,acdirmax=600,addr=10.3.45.51)
10.3.45.10:/vol/boot/spacey/mighty on /home/.mighty type nfs (rw,intr,vers=3,bg,rsize=32768,wsize=32768,tcp,acregmin=300,acdirmin=300,acregmax=600,acdirmax=600,addr=10.3.45.10)
10.3.45.30:/vol/boot/spacey.localbackups/caprisun on /mnt/filerbackup type nfs (rw,intr,vers=3,bg,rsize=32768,wsize=32768,tcp,acregmin=300,acdirmin=300,acregmax=600,acdirmax=600,addr=10.3.45.30)
10.3.45.30:/vol/boot/spacey.crontabs/caprisun on /usr/local/var/spool/cron/crontabs type nfs (rw,intr,vers=3,bg,rsize=32768,wsize=32768,tcp,acregmin=300,acdirmin=300,acregmax=600,acdirmax=600,addr=10.3.45.30)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
10.3.45.61:/vol/boot/spacey.crontabs/caprisun on /usr/local/var/spool/cron/crontabs type nfs (rw,intr,vers=3,bg,rsize=32768,wsize=32768,tcp,acregmin=300,acdirmin=300,acregmax=600,acdirmax=600,addr=10.3.45.61)
10.3.45.138:/vol/boot/spacey/mitzi on /home/.mitzi type nfs (rw,intr,vers=3,bg,rsize=32768,wsize=32768,tcp,acregmin=300,acdirmin=300,acregmax=600,acdirmax=600,addr=10.3.45.138)
10.3.45.34:/vol/boot/spacey/mem on /home/.mem type nfs (rw,intr,vers=3,bg,rsize=32768,wsize=32768,tcp,acregmin=300,acdirmin=300,acregmax=600,acdirmax=600,addr=10.3.45.34)

输出结果意外得多啊,可以看到大部分都是nfs export出来的挂载点,都是挂于/home的,本地挂载点就只有sda1,sda3,sda8,这三个分别挂在/,/usr/local,/usr/local/tmp上,然后通过df来取得这三个分区大小,如下:

/home/dawnh>df -h|grep sd
/dev/sda1             2.0G  1.7G  243M  88% /
/dev/sda3             6.9G  1.9G  4.7G  29% /usr/local
/dev/sda8             2.0G  447M  1.5G  24% /usr/local/tmp

很有趣,/只有2G大小,/usr/local有7G,/usr/local/tmp有2G。DH硬盘分区策略出人意料得简单,并不如我们想象中此类大容量空间提供商都应该根据业务对硬盘进行细致划分,甚至进行卷管理等策略。这里DH用nfs将客户数据目录通过NAS环境导入进来,因此本地磁盘的就无需承载业务,因此重要性也就不是那么高了。再回头看看,2G的根对于只运行Web Server的系统应该是足够了,因为省却了Xwindow等大部头玩艺,再加上debian这个发行版本身就属于小空间占用的发行版,因此2G的根属于正常考量,而后面的/usr/local个人猜想应该是放置了DH为了支撑整个hosting运行的所有程序,因此单独分区。而/usr/local/tmp应该为程序运行的临时目录,例如PHP存储session的目录等,因为读写频繁但同时不是很重要,所以单独分区便于进一步进行性能和安全方面的规划,注意看这个分区具有noexec属性。

TIPS:注意看三个sd分区的mount选项,不约而同地具有noatime,nodiratime属性,这属于提升性能tunning的一个小技巧,文件都具有ctime,mtime,atime3个时间戳属性,分别是创建时间,修改时间,访问时间,前2者比较有用,而第三者对于大多数用户来说不怎么重要,再加上Web Server这种需要大量文件读写的应用环境,每次访问文件都更新atime会浪费不少cpu时间,因此使用这个选项来实现性能的提升。这个小技巧在很多应用优化文章中都有提到,效果也还是不错的,不过貌似国内文章只提到过noatime,几乎没涉及过nodiratime的。

又来问题了,这三个分区加起来才11G,前面提到有6G的swap,这里还缺了sda2,4,5,6,7,这些分区都到哪去了?下一个命令输出:

/home/dawnh>/sbin/swapon -s
Filename   Type  Size Used Priority
/dev/sda5                       partition 2104504 278080 -1
/dev/sda6                       partition 2104504 0 -2
/dev/sda7                       partition 2104504 0 -3

这里看到,有3个swap分区,每个2G,加起来刚好6G,这样sda5,6,7有着落了,现在还剩下63G空间,还有sda2和sda4两个分区没着落,假定其中一个是容纳逻辑盘的扩展分区的话,还有一个分区,以及63G空间不知道是干什么的,有什么办法能找出这个分区来吗?
继续我们的探秘旅程,或者也可以说偷窥-_-b。

接下来是关于每个分区放置的数据了,首先自然是/,这里不列表了,仅仅谈谈DH这台服务器上几个与一般发行版不一样的目录。

lrwxrwxrwx     1 root       12 2007-01-08 06:56 dh -> usr/local/dh

这个dh目录恐怕就是dh放置绝大部分核心程序的位置了吧,可以看到是符号链接到了/usr/local/dh,把自定义的数据放在与发行版本身文件不同的分区便于以后的维护和各种业务或安全流程的实施。

lrwxrwxrwx     1 root       14 2007-01-08 06:59 ndn -> /usr/local/ndn

又一个没见过的目录,留待以后仔细分析吧。

lrwxrwxrwx     1 root       14 2007-01-08 06:59 tmp -> /usr/local/tmp

/tmp是大多数程序放置临时文件的地方,这里直接符号连接到了上面所谈的分区,刚好印证了上面的猜测。

lrwxrwxrwx     1 root       13 2007-01-08 06:59 var -> usr/local/var

连/var都符号链接到了/usr/local分区下面的目录,看来这里有不少数据也是需要单独对待的,我第一个想到得就是mysql的数据目录/var/lib/mysql,留待以后仔细研究。
 

更新:关于前面提到的pci设备

PCI设备是其特定的ID号来标示的,包含vendor id, device id, subsystem等,这个ID是由一个组织统管并给各大硬件厂商分配。一般来说,一个精确的ID就唯一得确定了一种PCI设置,因此通过读取此ID就可以得知此设备究竟是什么东西。Linux发行版中的lspci工具就是做这个的。但由于发行版发行时间问题,系统自带的ID-设备对硬数据库可能比较陈旧,导致识别不出新的设备来,这是就会出现unknown device,如同上面我们看到的结果。遇到此类情况,解决方法是使用新的IDs数据库。对于Linux,有一个项目是构建公开的ID数据库,在这里:http://pciids.sourceforge.net/,可以在此网站直接下载其数据库http://pciids.sourceforge.net/pci.ids到本地,然后使用命令lspci  -i path-to-pci.ids来指定使用下载到的ID数据库来鉴别设备。在Dreamhost主机运行后,结果变为:

/home/dawnh/source>lspci -i pci.ids       
0000:00:01.0 PCI bridge: Broadcom BCM5785 [HT1000] PCI/PCI-X Bridge
0000:00:02.0 Host bridge: Broadcom BCM5785 [HT1000] Legacy South Bridge
0000:00:02.1 IDE interface: Broadcom BCM5785 [HT1000] IDE
0000:00:02.2 ISA bridge: Broadcom BCM5785 [HT1000] LPC
0000:00:03.0 USB Controller: Broadcom BCM5785 [HT1000] USB (rev 01)
0000:00:03.1 USB Controller: Broadcom BCM5785 [HT1000] USB (rev 01)
0000:00:03.2 USB Controller: Broadcom BCM5785 [HT1000] USB (rev 01)
0000:00:05.0 VGA compatible controller: ATI Technologies Inc Rage XL (rev 27)
0000:00:18.0 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] HyperTransport Technology Configuration
0000:00:18.1 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Address Map
0000:00:18.2 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] DRAM Controller
0000:00:18.3 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Miscellaneous Control
0000:01:0d.0 PCI bridge: Broadcom BCM5785 [HT1000] PCI/PCI-X Bridge (rev b2)
0000:01:0e.0 RAID bus controller: Broadcom BCM5785 [HT1000] SATA (Native SATA Mode)
0000:02:03.0 Ethernet controller: Broadcom Corporation NetXtreme BCM5704 Gigabit Ethernet (rev 10)
0000:02:03.1 Ethernet controller: Broadcom Corporation NetXtreme BCM5704 Gigabit Ethernet (rev 10)

可以看到先前为unknown的设备现在能识别出来了,根据这个结果,很显然确定了主板的芯片组为ServerWorks的HT1000。

越写越多,停不下来了,暂且待续……

  6 Responses to “Dreamhost探密”

  1. [...] Link to Article linux Dreamhost?? » Posted at Solo Estoy on Tuesday, July 10, 2007 Permalink [...]

  2. 哇,兄弟你也太狠了!!!!
    赞一个!

    真的好棒。。。

  3. Dreamhost 必须得用 NAS,否则一个用户 200G,一台服务器怎么也挂不了那么多硬盘,呵呵。

  4. 用附加外置存储是在意料之中,但没想到会是NAS,印象里像Web这种i/o敏感型应用我个人以为只有SAN才适合.并且这样大规模的站点数量竟然没有使用动态卷.其架构越研究感觉越有意思,其实对于DH的存储体系,是仅次于其LAMP架构我最为感兴趣的部分.

  5. 呵呵,如果有机会的话不妨去看看sf.net的架构.
    他们可也提供了一个巨大的hosting :)

  6. 另外好像也是这样的NFS.

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>