我发现 DRBD 的性能损失比其用户手册中说的要大得多。我使用的是 DRBD 8.3.7 (Fedora 13 RPM)。
我已经设置了 DRBD 测试并测量了没有 DRBD 的磁盘和网络的吞吐量:
dd if=/dev/zero of=/data.tmp bs=512M count=1 oflag=direct
536870912 bytes (537 MB) copied, 4.62985 s, 116 MB/s
/ 是我正在测试的磁盘上的逻辑卷,没有使用 DRBD 安装
iperf的:
[ 4] 0.0-10.0 sec 1.10 GBytes 941 Mbits/sec
根据吞吐量开销预期,瓶颈将是网络或磁盘中较慢的那个,而 DRBD 的开销应为 3%。就我而言,网络和 I/O 似乎相当均衡。听起来我应该能够获得大约 100 MB/s 的速度。
因此,使用原始 drbd 设备,我得到
dd if=/dev/zero of=/dev/drbd2 bs=512M count=1 oflag=direct
536870912 bytes (537 MB) copied, 6.61362 s, 81.2 MB/s
这比我预期的要慢。然后,当我用 ext4 格式化设备时,我得到了
dd if=/dev/zero of=/mnt/data.tmp bs=512M count=1 oflag=direct
536870912 bytes (537 MB) copied, 9.60918 s, 55.9 MB/s
这似乎不对。一定还有其他我不知道的因素在起作用。
全局通用配置文件
global {
usage-count yes;
}
common {
protocol C;
}
syncer {
al-extents 1801;
rate 33M;
}
数据镜像
resource data_mirror {
device /dev/drbd1;
disk /dev/sdb1;
meta-disk internal;
on cluster1 {
address 192.168.33.10:7789;
}
on cluster2 {
address 192.168.33.12:7789;
}
}
就硬件而言,我有两台相同的机器:
- 6 GB 内存
- 四核 AMD Phenom 3.2Ghz
- 主板 SATA 控制器
- 7200 RPM 64MB 缓存 1TB WD 硬盘
网络通过交换机连接,为 1Gb。我知道建议直接连接,但这能造成这么大的差别吗?
已编辑
我刚刚尝试监控使用的带宽,看看发生了什么。我用监控系统并测量了运行 dd 测试 10 次时的平均带宽。我得到了:
- 平均写入 ext4 速度约为 450Mbits
- 平均约 800Mbits 写入原始设备
看起来,使用 ext4 时,drbd 使用的带宽大约是原始设备所用带宽的一半,因此存在一个不是网络的瓶颈。
答案1
您为什么使用“rate=33M”来限制带宽?为什么使用同步协议“C”?
我通常使用协议“A”和 8 MB 缓冲区。对于千兆线路和大流量,我限制为“速率=90M”。