수만개의 FS 탑재

수만개의 FS 탑재

파일 생성/읽기/쓰기/삭제 기능을 제공하고 다수의 웹 서비스 사용자에 대한 할당량을 설정해야 합니다. 이러한 사용자는 Linux 사용자로 존재하지 않으므로 할당량을 적용할 수 없습니다. 단지 할당량을 수행하기 위해 실제 사용자를 생성하는 것은 나쁜 생각처럼 보입니다. 그래서 저는 사용자별 파일을 생성하여 파일 시스템으로 마운트하기로 결정했습니다.

  1. 수만 개의 FS를 탑재한 결과는 무엇입니까?
  2. 마운트된 FS의 총 개수에 제한이 있나요?

답변1

우선, 많은 파일 시스템을 마운트하는 것은 정말 나쁜 생각처럼 보입니다. 어떤 문제가 있든 더 나은 해결책이 있어야 합니까?

어쨌든, 두 번째 질문에 대답하려면:이전 서버 오류 질문최근 커널의 경우 파일 시스템 유형당 마운트 지점 제한이 약 100만 개(2^20)이며 최대 256개의 다양한 파일 시스템 유형을 마운트할 수 있음을 나타내는 것 같습니다.

이전 커널(2.6 이전)의 경우 파일 시스템당 마운트 지점이 256개로 제한됩니다.


편집하다의견에 응답하여 다음과 같은 대체 솔루션을 제안합니다.

XFS를 사용하면 다음을 사용할 수 있습니다.프로젝트 할당량, 디렉터리 할당량의 한 형태입니다.

모든 웹 서비스 사용자 데이터를 보관할 별도의 XFS 파일 시스템을 만듭니다. 예를 들어 마운트하십시오 /mnt/myWebService. 그런 다음 각 웹 서비스 사용자에 대해 프로젝트 디렉터리(예: /mnt/myWebService/username1등)를 만들고 그에 따라 할당량을 설정합니다.

프로젝트 디렉터리 및 할당량을 설정하는 방법에 대한 지침은 예를 들어 다음을 확인하세요.이 블로그 항목아니면 그RHEL XFS 할당량 관리 페이지

답변2

사용자를 생성할 필요가 없으며(/etc/passwd 또는 원하는 사용자 데이터베이스에 추가하는 것처럼) 파일의 소유권을 사용자 없이 모든 uid로 설정할 수 있습니다. 해당 uid가 해당 서버에서 프로세스를 실행할 수 있는 로컬(또는 원격) 사용자와 겹치지 않는지 확인하세요.

그러나 파일 소유자를 변경하려면 슈퍼유저 권한이 필요하며 이는 웹 응용 프로그램에 문제가 될 수 있습니다.

ZFS를 사용하는 경우 모든 스냅샷에 대해 하나의 마운트 지점을 얻게 되며 수천 개가 있는 경우도 흔하므로 이는 큰 문제가 아닙니다.

답변3

이를 위해 엄청난 양의 파일 시스템을 만들 필요가 없습니다.

이를 수행하는 쉬운 방법은 각 사용자에 대한 디렉토리를 생성한 다음(이미 수행해야 함) 사용자가 무언가를 업로드하려고 할 때마다 디렉토리의 파일이 얼마나 많은 공간을 사용하는지 확인하는 것입니다. 업로드로 인해 제한이 초과되면 업로드를 거부하세요. 이는 알려진 세계의 다른 모든 웹 애플리케이션이 수행하는 방식입니다.

추신: 당신은 여러 댓글을 통해 당신이 하고 있는 일에 대한 세부 사항을 분산시켰습니다. 대신 사람들이 찾을 수 있도록 질문에 추가해야 합니다(그리고 반대 투표를 취소할 수도 있음).

관련 정보