끄적이는 보송

[AWS] FSx 'Storage Quota'를 이용한 사용자 스토리지 할당량 임계값 설정하기 본문

STUDY/AWS

[AWS] FSx 'Storage Quota'를 이용한 사용자 스토리지 할당량 임계값 설정하기

끄적이는 보송 2022. 9. 26. 13:11
반응형

Storage Quota란

Storage Quota는 사용자 계정에 스토리지 할당량 임계값을 설정하여 이것들을 초과할 때 파일 시스템에 데이터를 쓸 수 있는 능력에 제한을 부과하기 위한 모니터링 설정이다. AWS 자체적인 기술이 아니라 뭔가 OS의 기능으로 보인다.
[+] https://docs.amazonaws.cn/en_us/fsx/latest/WindowsGuide/managing-user-quotas.html

 

Storage quotas - Amazon FSx for Windows File Server

Services or capabilities described in Amazon Web Services documentation might vary by Region. To see the differences applicable to the China Regions, see Getting Started with Amazon Web Services in China. Storage quotas You can configure user storage quota

docs.amazonaws.cn

 

Storage Quota 사용 전, 원격 PowerShell  세션 접속

Storage Quota 기능을 사용하기 위해선 이전에 다뤘던 중복제거와 비슷하게 CLI 명령어로 수행해야 한다. 매번 Invoke-Command 명령어를 길게 날려 작업하는 방법도 있지만, 아래 링크를 참고해 파일 시스템에서 원격 PowerShell 세션을 통해 작업하면 짧은 명령어 입력으로 작업이 가능하다.
[+] https://docs.aws.amazon.com/fsx/latest/WindowsGuide/remote-pwrshell.html

 

Getting started with the Amazon FSx CLI for remote management on PowerShell - Amazon FSx for Windows File Server

Getting started with the Amazon FSx CLI for remote management on PowerShell The Amazon FSx CLI for remote management on PowerShell enables file system administration for users in the file system administrators group. To start a remote PowerShell session on

docs.aws.amazon.com

 

Enforce 모드로 Storage Quota  기능 활성화 (Enforce 모드)

$QuotaLimit = <byte>
$QuotaWarningLimit = <byte>
Invoke-Command -ComputerName <FSx_PowerShell_Endpoint> -ConfigurationName FSxRemoteAdmin -ScriptBlock { Enable-FSxUserQuotas -Enforce -DefaultLimit $Using:QuotaLimit -DefaultWarningLimit $Using:QuotaWarningLimit }

위의 명령어를 통해 Storage Quota 디폴트 세팅이 가능하다. 만약 Track 모드로 하고 싶다면 '-Enforce' 옵션을 '-Track'으로 변경하면 된다. 다만 디폴트 세팅을 바꿔도 기존에 설정한 사용자의 Limit값은 그대로 유지된다. 참고로 Enforce 모드여야 스토리지 임계값이 초과했을 때 제한이 가능하다.

 

사용자 Storage Quota 세팅

Invoke-Command -ComputerName <FSx_PowerShell_Endpoint> -ConfigurationName FSxRemoteAdmin -ScriptBlock { Set-FSxUserQuotas }
# *Domain: 입력
# *Name: 입력
# *Limit: 입력
# *WarningLimit: 입력

혹은 특정 사용자를 지정하여 임계값 설정을 할당할 수 있다. 만약 설정값을 변경하고 싶다면, 똑같이 재설정해주면 된다.

 

사용자 Storage Quota 세팅 현황

Invoke-Command -ComputerName <FSx_PowerShell_Endpoint> -ConfigurationName FSxRemoteAdmin -ScriptBlock { Get-FSxUserQuotaEntries }

위의 명령어를 수행하여 Storage Quota 관련 사용자 설정 값을 확인할 수도 있다. 

반응형

 

실습

실제로 실습해 보았다. 사용자 할당량보다 초과되는 스토리지 쓰기를 수행하면 아래처럼 해당 사용자의 상태가 'Exceeded'라고 출력된다. (사용한 스토리지가 Limit보다 큰 이유는 내가 도중에 Limit값을 낮췄기 때문이다.)

만약 상태가 'Exceeded' 임에도 사용자 스토리지 활동에 아무런 제한이 없다면 Storage Quota가 'Track'모드가 아닌지 확인해보자. 'Enforce' 모드여야 제한이 걸린다.

사용자에게 할당된 임계값을 넘어가는 스토리지를 이용하지 잘 제한되고 있는 모습니다. 또한 내 컴퓨터에서 FSx 장비를 확인해보면 FSx SSD의 최소 스토리지 크기는 32 GiB이지만 내가 설정한 임계값만큼 스토리지 여유 공간이 출력되는 모습을 확인했다.

 

사용자 스토리지 사용량이 할당량을 초과한다면?

사용자의 'DiskSpaceUsed'값이 Limit을 초과하면 더 이상 스토리지 이용에 제한을 걸어두는 것으로 보인다. 여기서 문득 이런 생각이 들었다. "사용자의 스토리지 사용에 의해 DiskSpaceUsed값이 계속 증하면 언제가 사용에 제한이 걸릴 텐데, 그럼 그때마다 Limit의 임계값을 추가로 늘려야 하는 작업을 해야 하나? DiskSpaceUsed을 줄이는 방법은 없을까?"였다. 

결론부터 말하자면, 사용자가 생성한 혹은 쓰기를 한 파일을 삭제하면 'DiskSpaceUsed'값은 줄어든다. 그리고 사용자가 다른 사용자의 파일을 제거해도 파일을 생성했던 사용자의 'DiskSpaceUsed'값은 동일하게 줄어든다는 점이다. 즉, Limit 임계값에 제한이 걸렸다면 파일을 삭제하거나 혹은 관리자가 Limit값을 올려줘야 한다. 이해를 돕기 위해 아래의 시나리오를 가정해 보았다.

1. 사용자 A가 파일 쓰기 작업을 수행해 'DiskSpaceUsed'값이 증가했다.
2. 사용자 B는 사용자 A가 만든 파일을 볼 수도 삭제할 수도 있다. (따로 AD에서 막아둔 게 아니라면)
3-1. 사용자 B는 사용자 A가 만든 파일을 삭제하여 사용자 A의 'DiskSpaceUsed'값이 줄어든다.
                             or
3-2. 사용자 A 자신이 생성한 파일을 삭제하여 'DiskSpaceUsed'값이 줄어든다.
                              or
3-3. 관리자가 사용자 A의 Limit값을 증가시킨다.
4. 사용자 A는 Limit의 제한 없이 스토리지를 지속적으로 사용할 수 있다.


정리

1. 스토리지 할당량 임계값 초과 시, 제한을 두려면 'Enforce'모드를 이용하자.
2. 스토리지 할당량 임계값 설정은 재설정 가능하다.
3. 'DiskSpaceUsed'(사용자가 이용한 스토리지 사이즈)를 줄이려면 해당 사용자가 쓰기 한 파일을 지워야 한다.
4. 혹은 재설정하여 Limit값을 올려 제한을 푸는 방법도 있다.

반응형
Comments