我需要你的帮助。
我有 DRBD 集群 (9.6.0,内核 3.10.0-957.21.3,CentOS 7)。在这个集群中,我有两个 drbd 磁盘:
- SSD 的 drbd0
- drbd1 用于 HDD
drbd0 (SSD,sda) 一切正常 - 处于更新状态。但 drbd1 (HDD,sdb) 我看到以下内容:
# drbdadm status
drbd0 role:Primary
disk:UpToDate
slave role:Secondary
peer-disk:UpToDate
drbd1 role:Primary
disk:UpToDate
slave role:Secondary
replication:SyncSource peer-disk:Inconsistent done:0.17
速度非常慢 - 6 小时内只用了 0.17%。我知道 HDD 比 SSD 慢,但这个速度太慢了。
信息:
我有这个配置(注释行-这是我的实验):
# cat /etc/drbd.d/global_common.conf
global {
usage-count yes;
}
common {
net {
protocol B;
}
}
# cat /etc/drbd.d/drbd0.res
resource drbd0 {
on master {
device /dev/drbd0;
disk /dev/mapper/vg_ssd_drbd-lv_ssd_drbd;
meta-disk internal;
address 192.168.100.15:7788;
}
on slave {
device /dev/drbd0;
disk /dev/mapper/vg_ssd_drbd-lv_ssd_drbd;
meta-disk internal;
address 192.168.100.17:7788;
}
net {
sndbuf-size 10M;
rcvbuf-size 10M;
ping-int 2;
ping-timeout 2;
connect-int 2;
timeout 5;
ko-count 5;
max-buffers 128k;
max-epoch-size 8192;
verify-alg md5;
}
disk {
c-plan-ahead 20;
c-min-rate 1M;
c-max-rate 600M;
c-fill-target 2M;
al-extents 3389;
}
}
# cat /etc/drbd.d/drbd1.res
resource drbd1 {
on master {
device /dev/drbd1;
disk /dev/mapper/vg_hdd_drbd-lv_hdd_drbd;
meta-disk internal;
address 192.168.100.15:7789;
}
on slave {
device /dev/drbd1;
disk /dev/mapper/vg_hdd_drbd-lv_hdd_drbd;
meta-disk internal;
address 192.168.100.17:7789;
}
net {
#sndbuf-size 1M;
#rcvbuf-size 1M;
ping-int 2;
ping-timeout 2;
connect-int 2;
timeout 5;
ko-count 5;
#max-buffers 12k;
#max-epoch-size 8192;
#verify-alg md5;
}
disk {
#c-plan-ahead 20;
c-min-rate 1K;
c-max-rate 600M;
#c-fill-target 2M;
al-extents 919;
}
}
服务器具有 10Gbps 通道链路 - 都位于一个房间内。
我可以向你展示我的监控:
晚上我同步了我的 SSD - 一切正常。但白天我尝试同步我的 HDD,结果很糟糕。
IO 瞬间增长,但对磁盘的读写操作却没有一台服务器。与 NET 流量的情况相同。
如果我连接到服务器,我会看到以下图片:
top - 12:52:35 up 1 day, 10:44, 1 user, load average: 1.01, 1.06, 1.26
Tasks: 492 total, 1 running, 491 sleeping, 0 stopped, 0 zombie
%Cpu0 : 0.0 us, 0.3 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu1 : 0.0 us, 0.3 sy, 0.0 ni, 0.0 id, 99.7 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu2 : 0.0 us, 0.3 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu3 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu4 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
DRBD1(我在 iostat 中看到他)在 CPU 上以 100% 的速度加载 iowait,但 WriteKB 和 ReadKB 约为零。
我谷歌了一下它的问题,有人建议我显示 TCP 缓冲区,但没问题。我将 drbd1 的所有 DRBD 设置刷新为默认值,但没有结果。
我尝试自己诊断问题并发现了两个异常:
一。我看到有人在 1 秒内显示“执行 I/O 所花费的时间”。我想,我在这里得到的是超时。
二。在我的硬盘安装目录中,我发现 df/du 和 ls 命令有很大不同。也许这是 KVM 的功能,但我不确定。
du -sh /data/hdd-drbd/*
170M /data/hdd-drbd/awx-add.qcow2
7.7G /data/hdd-drbd/awx.qcow2
2.0G /data/hdd-drbd/template-DISABLE.qcow2
ls -lah /data/hdd-drbd/
total 9.8G
drwxr-xr-x 2 root root 74 Aug 16 17:37 .
drwxr-xr-x. 8 root root 91 Aug 14 22:11 ..
-rw------- 1 qemu qemu 201G Aug 15 19:41 awx-add.qcow2
-rw------- 1 qemu qemu 7.7G Aug 18 17:26 awx.qcow2
-rw------- 1 root root 46G Aug 15 13:48 template-DISABLE.qcow2
现在我要将所有数据移至 SSD 磁盘,并尝试重新同步空磁盘 - 也许 - 没问题。但我需要您的帮助来解决这个问题 - 您对这种情况有什么想法吗?
编辑:
还有一点——为什么我要重新同步我的存储?我在 LVM 中为 drbd[0/1] 添加了一些 PV,并调整了 drbd 设备的大小。也许这是重要的信息……在此操作之前,drbd 运行良好。
编辑2:
空盘重新同步相同...