원문 보기: https://dawoum.duckdns.org/wiki/Btrfs/Maintenance
리눅스에서는 자신의 상황에 따라, 다른 파일 시스템을 사용할 수 있습니다.
데스크탑에서, Ext4는 대표적인 기본 파일 시스템이고, 더구나, Ext4는 사용자에게 유지 보수를 위한 별도의 작업을 전혀 요구하지 않습니다.
반면에 현대적인 기능을 갖춘 Btrfs은 몇 가지 유지 보수가 필요하다고 얘기하는 사람들이 있습니다.
예를 들어, 데비안 패키지 btrfsmaintenance는 이런 역할을 하는 것입니다.
어쨌든, 어떤 것이 필요한지 알아둘 필요는 있어 보입니다.
- Defragmentation: 거의 필요하지 않습니다. 스냅샷이나 압축을 사용하고 있다면 사용해서는 안 됩니다.
- Scrub: 전혀 유익하지 않습니다. 만약 RAID 1을 가지고 있을 때에만 유용할 수 있습니다. 그리고 그때조차도 당신이 정말로 뭔가 잘못되었다고 생각하는 경우에만 유용할 수 있습니다.
- Trimming: 이미 systemd에 의해 자동으로 수행되고 있으니, 해서는 안 됩니다.
- Balance: 경우에 따라 필요합니다. 그러나 Btrfs는 사용량이 80%를 초과하지 않는 한 자체적으로 balance를 이룰 것입니다.
보통 데스크탑 사용자의 입장에서, 여기저기 정보에 따라 압축을 사용하고, RAID를 사용하지 않고, Systemd를 사용하고 있으므로, 결국 Balance만 남게 됩니다.
한편, Monit에서, 디스크 사용량에 대한 점검을 수행할 수 있으므로, 여기서 Btrfs을 사용하는 디바이스를 감시하는 것이 필요해 보입니다.
디바이스 사용량 체크는 Monit에서 동작하긴 하지만, 하나의 디바이스를 제외하고 다른 것은 "Does not exist"를 출력하면서 동작하지 않습니다.
따라서, Cron을 이용해서 조건을 만족할 때 이메일을 발송할 필요가 있습니다.
Filesystem check script
이메일 발송과 관련하여 Postfix (software)#Sending Mail with the Client에 있는 내용을 그대로 사용할 수 있습니다.
단지, 모니터링이 필요한 btrfs 디바이스의 사용량을 확인할 필요가 있고, 여러 디바이스 중에 하나라도 조건을 만족할 때 이메일을 발송하도록 처리할 수 있습니다:
#!/bin/bash
usage1=$(/bin/df -Ph /dev/sda1 | grep -Po '\d+(?=%)')
usage2=$(/bin/df -Ph /dev/sdc1 | grep -Po '\d+(?=%)')
if [ "$usage1" -gt "77" ] || [ "$usage2" -gt "77" ] ; then
cat ~/duckdns/btrfs.message | mail -s 'filesystem usage message' -r from_field_account email_id@email.com
fi
이 파일은 ~/duckdns/btrfs.sh로 저장하고, 메시지 본문은 ~/duckdns/btrfs.message에 넣습니다. 그런-다음 crontab -e를 실행해서 매 시간마다 스크립트를 실행하도록 지정할 수 있습니다:
0 * * * * /home/user_id/duckdns/btrfs.sh > /dev/null 2>&1
조건을 맞추어서 스크립트가 작동해서 이메일을 발송하는지 확인을 하십시오.
여기서 다음을 자신의 것으로 바꾸어야 합니다:
- 디바이스: /dev/sda1, /dev/sdc1
- 사용량: 77
- 이메일: email_id@email.com
- 사용자: user_id
External Resources