KFS分布式文件系统测试报告

0-环境

1-写性能

2-读性能

3-灾备

 

---------0.环境---------

共四台服务器:25.mzhen.cn - 28.mzhen.cn

metaserver: 25.mzhen.cn

meta_info_bak: 26.mzhen.cn

chunkserver: all

replica: default(3)

机器配置:16*Xeon 2.27, 16GB, 2TB * 2(7200k, raid5, XFS 文件系统), 1Gbps

测试发现,CPU利用率不足10%,网络速度一般在400-700Mbps。实际瓶颈应该在硬盘IO。

 

---------1.写性能---------

1.1-测试程序

FCbenchmark/load-data.cpp

 

1.2-测试结果

单文件连续写,平均时间5GB/80秒(62.5MB/s)

多文件(10MB/文件)连续写,平均时间5GB/80秒(62.5MB/s)

 

1.3-异常情况

集群中的4台服务器只有3台接收写数据,记为ABC。手工停掉B的chunkserver进程,则D会开始写入数据。

重启集群,仍然只有3台机器接收数据,但变为ABD。

目前还不清楚造成这一现象的原因。

 

---------2.读性能---------

2.1-测试程序

FCbenchmark/scan-data.cpp

2.2-测试结果

单文件顺序读,5GB/70秒左右(71.4MB/s)

单文件随机读,读取5MB后随机跳转,5GB/95秒左右(52.6MB/s)

 

2.3-异常情况

 

2.4-读写同时进行-不同文件

5GB写入时间,115秒左右(43.4MB/s)

5GB读取时间,140秒左右(35.7MB/s)

 

2.5-读写同时进行-相同文件

可以进行,速度和2.4节基本一致。

 

---------3.灾备---------

3.1-写过程灾备-chunkserver

在全速写入数据时,停掉某台机器的chunkserver服务。

写数据程序得到如下提示,

06-04-2010 16:11:01.683 INFO - (KfsWrite.cc:472) Write failed...chunk = 1046, version = 1, offset = 25165824, error = -113 

06-04-2010 16:11:01.684 INFO - (KfsWrite.cc:304) Daisy-chain: 192.168.1.37 30000 192.168.1.38 30000 192.168.1.35 30000 ; Will retry allocation/write on chunk 1046 due to error code: -113 

06-04-2010 16:12:01.690 INFO - (KfsWrite.cc:372) Forced allocation: chunk=1046, version=2

之后继续写入过程。可以观察到现存机器的数据量持续增加,写入速度没有明显变化。

写入完成后尝试读取该文件,没有出现异常

 

3.2-写过程灾备-metaserver

在全速写入数据时,停掉metaserver进程。

写数据程序得到如下提示,

Connect: : Connection refused,并不断重复(10分钟以上)

此时重新启动metaserver,写入过程自动恢复。

 

3.3-读过程灾备-chunkserver

在全速读取数据时,停掉chunkserver进程。

读过程继续,速度不变。

继续停止chunkserver进程,当保存所需数据的所有chunkserver都停掉后,读取程序得到如下提示,

06-05-2010 13:41:29.005 INFO - (KfsRead.cc:150) Read done from  on dir1/perf3: @offset: 30571233281: asked: 5120000, returning 4833281, errorcode = 1

 

3.4-读过程灾备-metaserver

在全速读取数据时,停掉metaserver进程。

读取程序得到如下提示,

Connect: : Connection refused

06-05-2010 13:45:17.965 INFO - (KfsRead.cc:150) Read done from  on dir1/perf3: @offset: 6576668672: asked: 5120000, returning 2588672, errorcode = 1048576 

Connect: : Connection refused

06-05-2010 13:45:32.967 INFO - (KfsRead.cc:150) Read done from  on dir1/perf3: @offset: 6576668672: asked: 5120000, returning 0, errorcode = 0

之后程序退出。

 

3.5-数据受损-chunkserver

删除chunkserver上的数据,重新启动chunkserver。

日志中得到如下提示,

06-05-2010 13:52:20.006 INFO - (Replicator.cc:123) Starting re-replication for chunk 16282 with size 67108864 

06-05-2010 13:52:20.008 INFO - (Replicator.cc:138) Offset: 67108864 is past end of chunk 67108864 

可以认为系统自动开始了数据恢复。

 

3.6-数据受损-metaserver

删除metaserver上的元数据,重新启动整个集群。

日志中得到如下提示,

06-05-2010 14:05:52.480 INFO - (LayoutManager.cc:263) Non-existent chunk id = 17885 => stale 

尝试读取之前写入的文件,提示文件不存在。

 

注意1,

配置文件machines.cfg中指定的backup_path不起作用。

注意2,

如果没有手工回复metaserver的元数据,而直接重启了metaserver进程,metaserver会自动重建元数据,并且会擦掉集群中所有数据。

你可能感兴趣的:(KFS分布式文件系统测试报告)