Ceph создают пул / max_size

Предположим, что 3 - это один из тех файловых дескрипторов, которые вас интересуют. 3 может указывать на файл, например:

exec 3>file

Ваше приложение пишет в 3:

app() { echo hello world >&3; }

Если вы хотите перехватить 3, вам нужно дублировать его в другой файловый дескриптор (например, 4):

exec 4>&3

и перенаправить (=заменить) 3 с помощью трубы в ваш процесс перехватчика, который должен писать обратно в исходную цель (иначе он не был бы перехватчиком), которая теперь сохранена в fd 4:

app 3> >(tee /dev/tty >&4) #this interceptor writes to the terminal

Вышеуказанное должно вывести hello world на терминал и file должен в итоге содержать hello world.

Все это предполагает, что эти filedescriptors открыты до начала процесса. Если вы хотите перехватить вывод filedescriptor динамически во время выполнения, то, боюсь, вам придется модифицировать код, внедрить код во время выполнения или перехватить системные вызовы с помощью чего-то вроде ptrace.

1
10.09.2018, 18:47
1 ответ

размер вашего пула по умолчанию, вероятно, 3 (или даже больше? ). Вы можете получить это с помощью:

host:~ # ceph daemon mon.<MON> config show | grep osd_pool_default_size
    "osd_pool_default_size": "3",

и измените это согласно вашему правилу:

host:~ # ceph daemon mon.<MON> config set osd_pool_default_size 2
{
    "success": "osd_pool_default_size = '2' (not observed, change may require restart) "
}

Постоянные изменения размеров пулов по умолчанию должны быть настроены в файле /etc/ceph/ceph.conf

1
28.01.2020, 00:29

Теги

Похожие вопросы