CentOS의 NVMe 드라이브(2x1TB)에 SoftRAID를 설정했습니다. 문제는 80GB만 구성했는데 이제 더 많은 공간을 구성하고 싶다는 것입니다. 누군가 내가 이 일을 하도록 도와줄 수 있나요? 출력은 다음과 같습니다 lsblk
.
nvme0n1 259:1 0 894.3G 0 disk
├─nvme0n1p1 259:3 0 511M 0 part /boot/efi
├─nvme0n1p2 259:5 0 78.1G 0 part
│ └─md2 9:2 0 78.1G 0 raid1 /
└─nvme0n1p3 259:7 0 511M 0 part [SWAP]
nvme1n1 259:0 0 894.3G 0 disk
├─nvme1n1p1 259:2 0 511M 0 part
├─nvme1n1p2 259:4 0 78.1G 0 part
│ └─md2 9:2 0 78.1G 0 raid1 /
└─nvme1n1p3 259:6 0 511M 0 part [SWAP]
[root@cloud963 ~]# cat /proc/partitions
major minor #blocks name
259 0 937692504 nvme1n1
259 2 523264 nvme1n1p1
259 4 81918976 nvme1n1p2
259 6 523264 nvme1n1p3
259 1 937692504 nvme0n1
259 3 523264 nvme0n1p1
259 5 81918976 nvme0n1p2
259 7 523264 nvme0n1p3
9 2 81918912 md2
8 0 5860522584 sda
8 1 5860520960 sda1
8 16 5860522584 sdb
8 17 5860520960 sdb1
9 4 5860388864 md4
253 0 52428800 dm-0
253 1 314572800 dm-1
253 2 20971520 dm-2
253 3 20971520 dm-3
답변1
너무 길어서 버전을 읽지 않았습니다.
"새 RAID 파티션 생성 방법 mdadm
"을 찾아볼 수 있지만 실제로는 별도의 RAID 파티션을 가짐으로써 어떤 이점도 얻을 수 없습니다. 대신 볼륨 관리자를 사용하여 공간을 최대한 활용하고 SSD의 수명을 최대화하세요. SSD는 중복되거나 삭제된 블록을 적절하게 제거하여 더 오래 지속됩니다.
전체 이야기
따라서 특히 여러 개의 디스크와 많은 스토리지를 사용하여 작업하는 경우 볼륨 관리자가 있으면 현명합니다.
다음을 수행해 보겠습니다.
- 새로운 미러링된 블록 장치를 생성합니다. 따라서 Linux는 현재 nvme0n1p2/nvme1n1p2에서와 같이 데이터 중복성을 관리합니다.
- 스냅샷 볼륨(볼륨은 기본적으로 파티션이지만 보다 유연한 용어)을 마음대로 생성, 삭제, 크기 조정이 가능한 공간을 만듭니다. 이것은 ... 불리운다볼륨 그룹.
- 그 공간 안에 소위 말하는 것을 만들어라.얇은 풀, 이는 해당 공간 내의 볼륨이 실제로 필요한 공간만 차지한다는 의미입니다(파일을 삭제하면 다른 볼륨에 사용할 수 있는 메모리가 제공됩니다).
- 해당 씬 풀에 대용량 볼륨을 생성하고 씬 프로비저닝을 지원하는 최신 파일 시스템으로 포맷합니다(예: 스토리지 섹터가 더 이상 사용되지 않을 때 볼륨 관리자에게 알려서 사용 가능한 스토리지로 계산할 수 있도록 함).
- 마지막으로 fstab에 볼륨을 추가하고 사용 가능함을 보여줍니다.
이 모든 것의 요점은 무엇이든 전송해야 할 경우를 대비하여 파일을 복사하기 위해 외부 드라이브를 구입할 필요가 없으며 RAID 간의 백업이 원활하게 진행되고 가능한 한 많은 공간을 절약한다는 것입니다(즉, 돈입니다).
그것을하는 방법
나는 다음을 수행할 것입니다:
- 선호하는 파티셔닝 도구1를 사용하여 nvme0n1 및 nvme1n1에 각각 새 파티션을 추가하세요. 아래에서는 $PA 및 $PB라고 부르겠지만 실제로는 각각 /dev/nvme0n1p4 및 /dev/nvme1n1p4²일 수 있습니다.
사용 가능한 모든 공간을 사용하도록 합니다(또는 사용 가능한 공간에서 RAM 공간의 두 배를 예약하고 나중에 스왑 공간을 확장하는데 이는 매우 작은 스왑 공간처럼 보입니다). 여기에서 포맷하지 마십시오(또는 "LVM 물리 볼륨"을 포맷으로 사용하십시오). /dev/md3
이 두 파티션에서 RAID1을 생성합니다. ( 현재 하나가 존재하지 않는다고 가정합니다 .ls /dev/md*
아직 존재하지 않는 번호를 확인하여 선택하세요.)
sudo mdadm --create /dev/md3 --level=1 --raid-devices=2 $PA $PB
이제 미러링된 블록 장치 /dev/md3을 생성합니다.- LVM2(논리 볼륨 관리자) 새로운 RAID 블록 장치를 포함하는 볼륨 그룹:
sudo vgcreate raidvg /dev/md3
이제 "raidvg"라는 이름의 볼륨 그룹이 있습니다. - 이 볼륨 그룹에 씬 풀을 생성해 보겠습니다.
sudo lvcreate -l 100%FREE -T raidvg/thinpool
이제 "thinpool"이라는 씬 풀이 생겼습니다. 이는 볼륨 그룹의 모든 공간을 채웁니다. 즉, 1에서 생성한 전체 RAID 볼륨을 차지한다는 의미입니다.
좋습니다. 이제 매우 유연하게 사용할 수 있습니다!
따라서 원하는 만큼 많은 볼륨을 생성할 수 있는 조항이 있습니다. 이렇게 해보자.
- 마지막으로 100GB³의 "가상" 크기로 볼륨을 생성해 보겠습니다.
sudo lvcreate -V 100G -T raidvg/thinpool -n firstvolume
이제 (씬 프로비저닝된) 볼륨 "firstvolume"이 생겼습니다. 블록 장치라고 생각하시면 됩니다/dev/mapper/raidvg-firstvolume
. - 그 위에 파일 시스템을 만듭니다. 파일 시스템이 특정 블록을 사용하지 않는다는 것을 기본 레이어에 알릴 수 있도록 하려면 XFS와 btrfs(상태: 2021년 6월) 중에서 선택하여 공간을 재사용할 수 있습니다. CentOS에서: XFS.
sudo mkfs.xfs /dev/mapper/raidvg-firstvolume
- 그거 설치해! 먼저 이제 사용할 준비가 된
/catpictures
sudo mkdir /catpictures
sudo mount /dev/mapper/raidvg-firstvolume /catpictures
Tadah 와 같은 마운트 지점을 만듭니다 ./catpictures
루트가 아닌 다른 사람이 콘텐츠를 넣을 수 있도록 하려면 폴더에 대한 권한을 원하는 대로 조정하세요. - (선택 사항이지만 부팅 시 마운트 활성화) 이를 포함하도록 /etc/fstab을 편집하세요! 를 누른 다음
/dev/mapper/raidvg-firstvolume /catpictures xfs noatime 0 0
/etc/fstab에 추가합니다.
그게 다야, 정말로!
나중에 다른 볼륨을 추가하려면 다음을 실행하면 됩니다.
sudo lvcreate -V 100G -T raidvg/thinpool -n name_of_new_volume
마운트된 파일 시스템에서 실행하여 파일 시스템에서 사용되지 않은 태그 공간을 명시적으로 찾을 수 있습니다 sudo fstrim
(그러나 CentOS에서는 자동으로 이 작업을 수행하는 경우도 있습니다).
다음을 사용하여 볼륨을 삭제할 수 있습니다.
sudo lvremove /dev/mapper/raidvg-name_of_volume_to_be_deleted.
고양이 사진이 100GB 이상인 경우 다음을 수행할 수 있습니다.
sudo lvextend -L200G -r /dev/mapper/raidvg-firstvolume
볼륨 크기를 200GB(또는 최대 크기 - 여전히 씬 프로비저닝되어 있으며 실제로 데이터를 저장하는 데 사용하는 SSD 공간만 사용함)로 늘립니다. 스위치는 -r
크기 변경에 대해 XFS에 알리도록 지시합니다. 일단 /catpictures
설치하면 이 모든 작업을 온라인으로 수행할 수 있습니다 !
LVM 씬 풀에는 많은 멋진 기능이 있습니다. RAID1을 사용하고 있기 때문에 데이터 보관에 대한 우려가 있을 수 있습니다.스냅 사진데이터 버전을 있는 그대로 유지할 수 있습니다.오늘변경되지 않은 데이터를 복사하지 않고 단독으로 다른 볼륨으로 사용합니다.
1 blivet-gui
CentOS 8을 사용하는 경우 EPEL의 도구가 훌륭하고 CentOS 7을 사용하는 경우gparted
² 문자 그대로 수행해야 합니다 export PA=/dev/nvme0n1p4 ; export PB=/dev/nvme1n1p4
. 그러면 긴 문자열을 다시 입력할 필요가 없습니다.
³ 이 공간은 사용되지 않습니다.지금, 당신은 가질 수 있습니다더씬 프로비저닝에는 실제 보유하고 있는 것보다 더 많은 메모리가 있습니다. 5TB를 가상 공간으로 사용할 수도 있었습니다! 공간은 파일 시스템에서 볼륨을 사용할 때 실제로 볼륨에 할당됩니다. sudo lvs
백분율을 사용하는 방법을 알아보세요 . 실제로 사용 가능한 공간보다 더 많은 데이터를 저장하려고 시도하는 경우에만 문제가 발생합니다. 그러면 LVM이 많은 작업을 수행할 수 있지만 마술처럼 사용할 수는 없기 때문에 시스템에 더 많은 SSD를 추가해야 합니다.