마운트 된 드라이브에서 여유 공간을 확보하는 방법 Redhat 7


14

VM 인프라에는 클러스터 된 호스트가 SAN으로 이동합니다.

내가 알아 내려고하는 것은 Redhat 서버에서 파일을 삭제할 때 얼마나 많은 "공백"이 남아 있는지입니다. Windows 서버에서 sdelete를 사용하면 문제가 해결되지만 Linux에서는 해결책을 찾는 데 어려움을 겪고 있습니다.

"공백"을 섹터로 정의하고 있습니까? SSD 드라이브에 쓰기를 시작하기 전에 먼저 드라이브를 0으로 설정해야한다는 점이 제로가 아닙니다.

내가 지적 할 한 가지는 Linux에 관해서는 위험 할 정도로 충분히 알고 있지만 슈퍼 사용자는 아닙니다.

드라이브 및 파티션 살펴보기 :

[root@rhserver1-DATA10 /]# fdisk -l

Disk /dev/sda: 53.7 GB, 53687091200 bytes, 104857600 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x0005d52e

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     1026047      512000   83  Linux
/dev/sda2         1026048   104857599    51915776   8e  Linux LVM

Disk /dev/sdb: 53.7 GB, 53687091200 bytes, 104857600 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk /dev/mapper/rhel_rhserver1--data10-root: 51.0 GB, 50964987904 bytes, 99540992 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk /dev/mapper/rhel_rhserver1--data10-swap: 2147 MB, 2147483648 bytes, 4194304 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

이제 디스크 사용량을 살펴보십시오.

[root@rhserver1-DATA10 /]# df -h
Filesystem                              Size  Used Avail Use% Mounted on
/dev/mapper/rhel_rhserver1--data10-root   48G  6.1G   42G  13% /
devtmpfs                                906M     0  906M   0% /dev
tmpfs                                   921M  340K  920M   1% /dev/shm
tmpfs                                   921M   90M  831M  10% /run
tmpfs                                   921M     0  921M   0% /sys/fs/cgroup
/dev/sdb                                 50G  3.5G   44G   8% /ACMS01Backup
/dev/sda1                               497M  210M  288M  43% /boot
tmpfs                                   185M   20K  185M   1% /run/user/1000
tmpfs                                   185M     0  185M   0% /run/user/1002

많은 시간을 인터넷 검색 한 결과이를 발견 한 후, "공백"을 얼마나 정리할 수 있는지 보여주고 있습니다.

[root@rhserver1-DATA10 /]#  parted /dev/sda unit MB print free | grep 'Free Space' | tail -n1 | awk '{print $3}'
1.02MB
[root@rhserver1-DATA10 /]#  parted /dev/sda unit '%' print free | grep 'Free Space' | tail -n1 | awk '{print $3}'
0.00%

나는 497M 파티션에 대한 합리적인 출력을 생각합니다.

그래서 이제는 마운트 된 드라이브에서만 똑같은 일을하고 싶습니다 (마운트 된 것 같습니다).

 parted /dev/mapper/rhel_rhserver1--data10-root unit MB print free | grep 'Free Space' | tail -n1 | awk '{print $3}'
 parted /dev/mapper/rhel_rhserver1--data10-root unit '%' print free | grep 'Free Space' | tail -n1 | awk '{print $3}'

어느 것도 나에게 아무것도주지 않습니다.

내 / etc / fstab / :

[root@rhserver1-DATA10 /]# cat /etc/fstab
/dev/mapper/rhel_rhserver1--data10-root /                       xfs     defaults        0 0
UUID=2f97a17c-a6d5-4904-ad5c-7c16b4510201 /boot                   xfs     defaults        0 0
/dev/mapper/rhel_rhserver1--data10-swap swap                    swap    defaults        0 0
/dev/disk/by-uuid/be4c45cf-5d72-4b97-b647-2e585947041f /ACMS01Backup auto nosuid,nodev,nofail,x-gvfs-show 0 0

그래서 내 질문은 내가 올바른 길에 있습니까?

내가 무엇을 찾고 있는지 설명했습니까?

인터넷 검색에 도움이되는 "공백"이라는 용어가 있습니까?

루트에서 "fstrim -v /"를 실행할 수 있지만 공간이 얼마나 있는지 알고 싶습니다.

또한 나는 이것들이 프로덕션 시스템이 fstrim I / O 집약적이라는 것을 알아 내려고 노력하고 있습니다. 피크가 아닌 시간에 실행되어야합니까?

"fstrim -v /"를 실행하는 데이터가 손실 될 가능성이 있습니까?


discard파일 시스템 에서 마운트 옵션을 설정할 수도 있습니다 .
Michael Hampton

아마도 / dev / mapper 대신 마운트 된 드라이브의 UUID를 사용합니까? 실행을 시도 blkid하고 UUID를 얻을 수 있는지 확인한 후 parted명령을 다시 실행하십시오 .
wilbo

답변:


12

/ 파티션에서 fstrim을 실행할 수있는 것이 가장 좋은 해결책이지만 ESXi가 구성된 방식으로는 불가능합니다.

VM과 스토리지 장치 모두에서 삭제를 활성화 할 수 있어야합니다.

xfs 파일 시스템으로 파티션 또는 논리 볼륨의 크기를 줄이려고 시도 할 수 없습니다. 이는 페도라의 알려진 버그입니다. 이 기능에 관심이 있다면 Red Hat 지원에 문의하여 Red Hat bugzilla 1062667을 참조하고 XFS 축소 / 축소가 필요한 사용 사례를 제공하십시오.

일부 환경에서 가능한 해결 방법으로 씬 프로비저닝 된 LVM 볼륨을 XFS 파일 시스템 아래의 추가 계층으로 간주 할 수 있습니다.

VM이 씩 프로비저닝 된 VMDK를 열망하는 경우, 볼륨을 정리 (기술적으로 말하기 : SCSI UNMAP) 할 때 교정 할 사항이 없습니다.

백엔드 스토리지가 씬 프로비저닝을 실행하는 경우 스토리지를 줄이고 백엔드가 웜 데이터를 캐시 / 중첩 할 수 있도록 지연 제로화 된 VMDK 파일을 사용해야합니다.

두 가지 가능한 옵션 :

  1. SAN을 통해 원격 서버가 스토리지를 제공하는 경우 스토리지가 씬 프로비저닝 된 경우에만 블록을 버릴 수 있습니다.

    1. 모든 VM을 다른 데이터 저장소로 VMotion하고 내장 VMWare 도구 사용
    2. SSH를 사용하여 ESXi 호스트에 연결
    3. 가상 머신 폴더로 이동
    4. du로 디스크 사용량 확인
    5. vmkfstools -K [disk]를 실행하십시오.
    6. du로 디스크 사용량 확인
  2. dd if = / dev / zero of = BIGFILE bs = 1024000 rm -f BIGFILE

내가 말할 수있는 것에서 sdelete와 동일한 작업을 수행하지만 디스크 I / O에 스파이크가 발생하고 실행하는 데 시간이 걸릴 수 있습니다.

하룻밤 사이에 시도해야 할 것

옵션 중 하나가 가장 좋지는 않지만 모든 VM을 다시 포맷하여 ext3 또는 ext4를 얻는 것이 실현 가능하지는 않습니다.

당신이 할 수있는 일은 모든 Linux VM에 대한 선호도 규칙을 설정하고 위의 옵션 1을 사용하는 것입니다.


12

몇 주 전에 같은 일을하려고하는데 방법을 찾지 못했습니다. Redhat 지원 포털에서 공식 진술을 공유합니다.

현재 xfs 파일 시스템으로 파티션 또는 논리 볼륨의 크기를 줄일 수 없습니다. 이 기능에 관심이 있다면 Red Hat 지원에 문의하여 Red Hat bugzilla 1062667을 참조하고 XFS 축소 / 축소가 필요한 사용 사례를 제공하십시오. 일부 환경에서 가능한 해결 방법으로 씬 프로비저닝 된 LVM 볼륨을 XFS 파일 시스템 아래의 추가 계층으로 간주 할 수 있습니다.

행운을 빕니다!!


그러나 의견을 보내 주셔서 감사하지만 VM에 사용 가능한 공간의 크기를 줄이려고하지 않습니다. SSD 드라이브에는 데이터가 삭제 될 때 섹터가 먼저 0으로 설정되고 섹터에 기록 된 적이없는 경우에 이미 0이 기록 된 경우와 비교할 수있는 (오류)가 있습니다. 나는 "fstrim -v /"를 사용할 수있는 sdelete가있는 창에서와 같이 많이 알아 내려고 노력하고 있습니다. 그것을 실행하기 전에 얼마나 많은 섹터가 영향을 받는지, 그리고 시스템에 어떤 영향을 미치는지 알 수 있도록 노력하고 있습니다.
Anthony Fornito
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.