API File Systems

markyang92·2023년 1월 27일
0

systemd

목록 보기
7/7
post-thumbnail

API File Systems

  • Systemd 에서 제공하는 가상 파일 시스템 (API Filesystems)(/etc/fstab에 list되지 않음)
    • 리눅스 커널은 userspace와 communicate하기 위해서 만든다.
  • 이러한 파일 시스템은 프로그래밍 인터페이스이며, 실제 스토리지에 백업되지 않는다. 이들은 단순히 커널의 파일 시스템 인터페이스를 다양한 관련 메커니즘의 인터페이스로 사용한다.
  • User space가 공유 메모리 Segments, 공유 임시 파일 또는 소켓을 저장하기 위해 자체 API 목적으로 사용하는 파일 시스템이 있다.
  • 이러한 API File Systemsystemd의 빠른 부팅 동안 마운트되고, /etc/fstab에 리스트되어 있지 않다.
  • 이 인터페이스를 만약 비활성화 시, 이 인터페이스를 사용하는 애플리케이션은 액세스할 수 없으므로, 프로그램이 중단 될 수 있다.
  • 여기서 지정된 옵션은 특정 API file system에 적용된다. 이러한 파일 시스템의 마운트 옵션, 기타 매개변수를 변경하려면, 적절한 설정으로 /etc/fstab에 추가하기만 하면 된다.
    • 이 기능은 /tmp와 같은 volatile을 physical disk가 지원하는 실제 파일 시스템으로 전환하는데 유용한다.
  • 아래의 표중 (X) 표시가 되어 있는건 비활성화가 가능하다.
    systemctl mask dev-hugepages.mount
    와 같은 설정은 다음 부트에서 huge memory page API FS가 기본적으로 마운트되지 않게한다.
  • Three levels of Off (http://0pointer.de/blog/projects/three-levels-of-off.html) 에 더 많은 자료를 참고한다.
FilesystemDescription
/sys커널 디바이스, 드라이버와 다른 커널 정보를 User space에게 제공한다.
/proc커널 세팅, 프로세스와 커널 정보를 User space에게 제공한다.
/dev커널 디바이스 노드를 User Space에게 제공한다.
/runUserspace의 소켓과 파일이 위치한다.
/tmpVolatile, temporary Userspace file system object들이 위치한다. (X)
/sys/fs/cgroup커널 control group hierarchy를 제공한다.
/sys/kernel/security, /sys/kernel/debug (X), /sys/kernel/config (x)특별한 커널 object를 Userspace에 제공한다.
/sys/fs/selinuxSELinux security data를 Userspace에 제공한다.
/dev/shmuserspace 공유메모리 object 위치
/dev/pts커널 pseudo TTY device nodes를 Userspace에 제공한다.
/proc/sys/fs/binfmt_misc커널에 추가적인 바이너리 포맷을 등록한다. (X)
/dev/mqueuemqueue IPC object를 User space에 제공한다. (X)
/dev/hugepages"huge" memory page 할당에 대한 userspace API 제공 (X)
/sys/fs/fuse/connectionskernel FUSE connections를 Userspace에 제공(X)
/sys/firmware/efi/efivarsfirmware 변수를 Userspace에 제공

tmpfs 백업인 /tmp를 제거하고 싶다.

  1. 루트 디렉토리로서 same physical file system을 상주하도록 /tmp에서 마운트를 사용하지 않도록 해야한다. 이를 위해 systemctl mask tmp.mount를 실행한다.
  2. 다른, physical file system을 /tmp에 마운트한다. 이를 위해서는 다른 파일 시스템과 마찬가지로 /etc/fstab에서 해당 항목을 생성한다.
  3. /tmp를 유지하되, 사이즈를 늘리거나 줄인다. 이를 위해서는 다른 tmpfs 파일 시스템에서와 마찬가지로 /etc/fstab에 엔트리를 만들고 올바른 size= 옵션을 사용한다.

Systemd에서 마운트하는 Unit


fstab을 dynamic generate하는 곳

  • /run/systemd/generator

boot.mount

  • /dev/disk/by-partuuid/4463d92c-01vfat 파일 시스템으로 /boot에 마운트한다. 이를 /etc/fstab (automatically)

-.mount

profile
pllpokko@alumni.kaist.ac.kr

0개의 댓글