리눅스 네임스페이스(Linux Namespace)

이진호·2023년 5월 21일
0

Linux

목록 보기
2/2

리눅스 네임스페이스

  • 프로세스를 실행할 때 시스템의 리소스를 분리해서 실행할 수 있도록 도와주는 기능.
  • 기본적으로 리눅스에서는 1번 프로세스(init)에 할당되어있는 네임스페이스들을 자식 프로세스들이 모두 공유해서 사용하는 구조.
  • /prod/<PID>/ns 디렉터리에서 현재 프로세스에서 사용하고 있는 네임스페이스의 고유 ID 확인 가능
$ ls -al /proc/1/ns
total 0
dr-x--x--x 2 root root 0 Jan 31 03:47 .
dr-xr-xr-x 9 root root 0 Jan 24 14:46 ..
lrwxrwxrwx 1 root root 0 Jan 31 03:47 cgroup -> 'cgroup:[4026531835]'
lrwxrwxrwx 1 root root 0 Jan 31 03:47 ipc -> 'ipc:[4026531839]'
lrwxrwxrwx 1 root root 0 Jan 31 03:47 mnt -> 'mnt:[4026531840]'
lrwxrwxrwx 1 root root 0 Jan 31 03:47 net -> 'net:[4026531993]'
lrwxrwxrwx 1 root root 0 Jan 31 03:47 pid -> 'pid:[4026531836]'
lrwxrwxrwx 1 root root 0 Jan 31 03:47 pid_for_children -> 'pid:[4026531836]'
lrwxrwxrwx 1 root root 0 Jan 31 03:47 user -> 'user:[4026531837]'
lrwxrwxrwx 1 root root 0 Jan 31 03:47 uts -> 'uts:[4026531838]'
  • 일반적인 경우 리눅스 네임스페이스를 직접 활용하는 경우는 많지 않으나, 네트워크 테스트나 컨테이너 구현에서 활용.
  • 리눅스 컨테이너는 리눅스 네임스페이스와 루트 파일 시스템 격리 등 리눅스의 다양한 기능을 사용해 격리시킨 프로세스.

네임스페이스의 종류

  • Cgroup 네임스페이스(cgorup)
  • IPC 네임스페이스(ipc)
  • 네트워크 네임스페이스(network)
  • 마운트 네임스페이스(mnt)
  • PID 네임스페이스(pid)
  • UTS 네임스페이스(user)
  • 사용자 네임스페이스(uts)
  • 시간 네임스페이스(time)

관련 명령어

  • unshare: unshare는 네임스페이스를 생성해서 프로세스를 생성하거나 영속화할 수 있도록 도와주는 명령어.
  • nsenter: nsenter는 영속화 되어있는 네임스페이스에서 프로세스를 실행하는 명령어.
  • ip: ip는 현재 시스템의 네트워크 상태에 대해서 조회, 네트워크 네임스페이스를 조작.

출처

0개의 댓글