Cluster gặp tình trạng died unexpectedly liên tục tại log cluster.
Trong quá trình sử dụng, việc thay đổi các Chunk và CS liên tục có thể gây ra một số lỗi bất tiện như thông tin log bên dưới.
Pstorage –c <clustername> top
MON ERR MDS# died unexpectedly (122): Can't load MDS id
MON ERR MDS# died unexpectedly (122): Can't load MDS id
Hoặc
MON ERR CS# died unexpectedly (122): csd: could not lock repository
MON ERR CS# died unexpectedly (122): csd: could not lock repository
Hoặc
MON ERR MDS# died unexpectedly (1)
MON ERR MDS# died unexpectedly (1)
Các lỗi bên trên sẽ xuất hiện liên tục mội 30s, tuy nhiên các dịch vụ CS và MDS không bị ảnh hưởng, chúng vẫn hoạt động bình thường.
Nguyên nhân
Nguyên nhân ở đây là service pstorage-monitor đang vẫn còn monitor trên các ID của các MDS hoặc CS đã bị xóa, tuy nhiên các pstorage-monitor này không tự động xác định được điều đó, chúng không thể tự shutdown và rơi vào tình trạng unknown. Trong trường hợp này service pstorage-monitor sẽ cố restart lại service mà monitor xem là bị failed, tuy nhiên do dịch vụ MDS và CS đã bị xóa bên service monitor sẽ trả lại mã như bên trên.
Giải pháp
Giải pháp ở đây là tìm các servie monitor đang monitor trên các MDS và CS đã bị xóa và kill chúng.
Việc này sẽ thực hiện trên từng Node để tìm ra các service gặp vấn đề.
Dưới đây là tình trạng bình thường của service monitor khi monitor trên 1 CS bình thường.
# ps fax | grep /usr/libexec/pstorage/monitor -A1
...
9625 ? S 0:00 /bin/sh /usr/libexec/pstorage/monitor
9628 ? Sl 15:55 \_ /usr/bin/csd -r /pstorage/pcs-bsh-cs/data -l /pstorage/pcs-bsh-cs/data/logs/cs.log.gz -u pstorage
...
Tình trạng bình thường của service monitor khi monitor trên 1 MDS bình thường.
# ps fax | grep /usr/libexec/pstorage/monitor -A1
...
128717 pts/0 S 0:00 /bin/sh /usr/libexec/pstorage/monitor
128720 pts/0 Sl 0:02 \_ /usr/bin/mdsd -r /pstorage/ssd1/mds/data -l /pstorage/ssd1/mds/data/logs/mds.log.gz -u pstorage
...
Dưới đây là tình trạng lỗi của service monitor khi monitor trên 1 CS đã “chết”.
# ps fax | grep /usr/libexec/pstorage/monitor -A1
...
3979 ? S 1:09 /bin/sh /usr/libexec/pstorage/monitor
132860 ? S 0:00 \_ sleep 5
...
Tiến hành kill -9 PID của service monitor.
# kill -9 3979
NOTE: Đừng sử dụng PID trong bài viết để thao tác trên hệ thống của bạn.