Я не могу создать кластерный отчет в OpsCenter. Сервер и клиенты работают на CentOS 5.9, 64bit. Версии программного обеспечения:
Вот сообщение об ошибке в веб-браузере:
There was an error generating the cluster report: u'/dev/mapper/Staging3SSTables_vol1'
Это файловая система на третьем узле cassandra в этом кластере. Это подчеркивание должно быть дефисом:
$ ls -la /dev/mapper/Staging3SSTables_vol1 ls: /dev/mapper/Staging3SSTables_vol1: No such file or directory $ ls -la /dev/mapper/Staging3SSTables-vol1 brw-rw---- 1 root disk 253, 0 Oct 7 13:56 /dev/mapper/Staging3SSTables-vol1 $ df -h /dev/mapper/Staging3SSTables-vol1 Filesystem Size Used Avail Use% Mounted on /dev/mapper/Staging3SSTables-vol1 551G 199M 522G 1% /var/lib/cassandra/data
Я не получаю эту ошибку для других узлов в кластере.
Что может быть причиной этого?
Вот полный вывод ошибки из opscenterd.log:
2013-10-10 08:48:37-0700 [] ERROR: There was an error while generating a cluster report. Traceback (most recent call last): File "/usr/lib/python2.6/site-packages/opscenterd/StatsReporter.py", line 132, in generateReport File "/usr/share/opscenter/lib/py-redhat/2.6/shared/amd64/twisted/internet/defer.py", line 1018, in _inlineCallbacks result = result.throwExceptionIntoGenerator(g) File "/usr/share/opscenter/lib/py-redhat/2.6/shared/amd64/twisted/python/failure.py", line 349, in throwExceptionIntoGenerator return g.throw(self.type, self.value, self.tb) File "/usr/lib/python2.6/site-packages/opscenterd/StatsReporter.py", line 148, in createClusterReport File "/usr/share/opscenter/lib/py-redhat/2.6/shared/amd64/twisted/internet/defer.py", line 1018, in _inlineCallbacks result = result.throwExceptionIntoGenerator(g) File "/usr/share/opscenter/lib/py-redhat/2.6/shared/amd64/twisted/python/failure.py", line 349, in throwExceptionIntoGenerator return g.throw(self.type, self.value, self.tb) File "/usr/lib/python2.6/site-packages/opscenterd/StatsReporter.py", line 109, in format_node File "/usr/share/opscenter/lib/py-redhat/2.6/shared/amd64/twisted/internet/defer.py", line 542, in _runCallbacks current.result = callback(current.result, *args, **kw) File "/usr/lib/python2.6/site-packages/opscenterd/Cluster.py", line 484, in sumDiskSpace KeyError: u'/dev/mapper/Staging3SSTables_vol1' 2013-10-10 08:48:37-0700 [] ERROR: Error generating the cluster report: Traceback (most recent call last): File "/usr/lib/python2.6/site-packages/opscenterd/WebServer.py", line 2243, in ClusterReportController KeyError: u'/dev/mapper/Staging3SSTables_vol1'
Здесь opscenterd перебирает разделы, содержащие любые настроенные каталоги данных из cassandra.yaml, и сравнивает их с выводом df --print-type --no-sync --block-size=1G --local
. OpsCenter, похоже, считает, что /dev/mapper/Staging3SSTables_vol1
один из тех разделов, что явно неверно.
Мы делаем некоторые экранирование специальных символов в именах разделов, но -
находится в списке разрешенных символов без экранирования. Поэтому, если это тире на самом деле не является тире или в коде OpsCenter просто есть ошибка, это не должно вызывать никаких проблем.
Я не получаю эту ошибку для других узлов в кластере.
При возникновении этой ошибки кластерный отчет прекращает обработку. Таким образом, если узел-нарушитель будет обработан первым, у других узлов не будет шансов на успех или сбой.