Size: a a a

2020 September 06

DS

Dmitry Sergeev in DevOps
то есть все таки процесс нужен?
источник

N

Navern in DevOps
Dmitry Sergeev
а как это делается на низком уровне без ip netns ?
https://lwn.net/Articles/407495/

Currently, there must be a process running in a namespace to keep it around, but there are use cases where it is rather cumbersome to have a dedicated process for keeping the namespace alive. With the new patches, doing a bind mount of the proc file for a namespace:

   mount --bind /proc/self/ns/net /some/path

судя по всему используется бинд маунт
источник

N

Navern in DevOps
но статья старая
источник

DS

Dmitry Sergeev in DevOps
Navern
https://lwn.net/Articles/407495/

Currently, there must be a process running in a namespace to keep it around, but there are use cases where it is rather cumbersome to have a dedicated process for keeping the namespace alive. With the new patches, doing a bind mount of the proc file for a namespace:

   mount --bind /proc/self/ns/net /some/path

судя по всему используется бинд маунт
ну тут же /proc/self/ns/net -  self - это же собственный pid =)
КАк я понял ip netns, использует /run/netns, только для того, чтобы не терять эти ns'ы когда нет процессов. А в качестве netns берется inode этих файлов
источник

N

Navern in DevOps
Dmitry Sergeev
ну тут же /proc/self/ns/net -  self - это же собственный pid =)
КАк я понял ip netns, использует /run/netns, только для того, чтобы не терять эти ns'ы когда нет процессов. А в качестве netns берется inode этих файлов
какая разница self или не self?
источник

DS

Dmitry Sergeev in DevOps
То есть таки ни mountns, ни netns не сущесвтуеют без процессов. А остальное это обвязки чтобы это обойти
источник

N

Navern in DevOps
Dmitry Sergeev
То есть таки ни mountns, ни netns не сущесвтуеют без процессов. А остальное это обвязки чтобы это обойти
Што?
источник

N

Navern in DevOps
У тебя может существовать неймспейс и при этом не будет существовать процесса с ним ассоциирвоанного
источник

DS

Dmitry Sergeev in DevOps
Navern
какая разница self или не self?
разницы нет, я говорю про то что /proc/self/ns/net - это все равно какой-то pid (процесс)
источник

N

Navern in DevOps
Dmitry Sergeev
разницы нет, я говорю про то что /proc/self/ns/net - это все равно какой-то pid (процесс)
ну так он потом умереть может, лол)
источник

DS

Dmitry Sergeev in DevOps
Navern
У тебя может существовать неймспейс и при этом не будет существовать процесса с ним ассоциирвоанного
а что под сущесвтованием namespace имеется в виду? Где он существует? Что это? Какая сущность?
источник

N

Navern in DevOps
Dmitry Sergeev
а что под сущесвтованием namespace имеется в виду? Где он существует? Что это? Какая сущность?
кернел структура
источник

N

Navern in DevOps
Можешь  в исходниках ядра порыться
источник

N

Navern in DevOps
Какая то философия опять началась)
источник

DS

Dmitry Sergeev in DevOps
Navern
кернел структура
так это kernel структура она к процессу привязана. Без него как я понял не существует
ip netns list - просто читает директорию /run/netns и выводит от туда список файлов, он не обращается к ядру для этого
источник

DS

Dmitry Sergeev in DevOps
Navern
Какая то философия опять началась)
да мне реально интересно
источник

DS

Dmitry Sergeev in DevOps
Началось же с того, что linux namespace mountns, сущесвтует без процесса в системе. Для меня это было удвитительно, вот и пытаюсь детали выяснить
источник

A

Alexander in DevOps
Dmitry Sergeev
то есть все таки процесс нужен?
Для создания - разумеется.
источник

DS

Dmitry Sergeev in DevOps
Alexander
Для создания - разумеется.
когда sleep 300 пройдет. Как посмотреть и проверить существование этого mountns?
источник

A

Alexander in DevOps
Dmitry Sergeev
так это kernel структура она к процессу привязана. Без него как я понял не существует
ip netns list - просто читает директорию /run/netns и выводит от туда список файлов, он не обращается к ядру для этого
В том-то и суть, что процесс может умереть, а неймспейс - остаться. Ну и там обратная привязка: процессов к неймспейсу :)
источник