업데이트

업데이트

2TB 크기의 디스크 가 있습니다 iscsi. 나는 매주 그 디스크를 백업합니다. 백업 스크립트는 전체 iscsi 디스크의 이미지를 NFS의 파일에 복사합니다. 아쉽게도 이미지를 한 조각으로 복사하지 않고 1TB 크기의 청크로 나눕니다. 제 경우에는 1TB 파일 2개(구성 파일 1개 포함)가 있습니다.

-r--r----- 1 root root 1099511627776 May 10 02:12 Backup-LUN-itmp-lun-0.000
-r--r----- 1 root root 1099500093440 May 10 03:50 Backup-LUN-itmp-lun-0.001
-rw-r--r-- 1 root root           251 May 10 03:50 Backup-LUN-itmp-lun-0.conf

이제 내 백업에 액세스해야 합니다. 일반적으로 하나의 파일이라면 매핑 /dev/loop0한 다음 일반 디스크로 마운트합니다. 하지만 제 경우에는 두 파일을 /dev/loop0. 한 가지 옵션은 두 파일을 분류하여 하나의 큰 파일을 만드는 것이지만 추가 2TB 공간이 없으며 게다가 이것은 어쨌든 좋은 솔루션이 아닙니다.

누군가 해결책을 제안해 주실 수 있나요?

업데이트

Andreas Wiese가 제안한 대로 선형 대상으로 dmsetup을 사용해 보았지만 다음과 같은 오류가 발생합니다.

dmsetup create my-backup << EOF
> 0 2147483648 linear Backup-LUN-itmp-lun-0.000 0
> 2147483648 2147461120 linear Backup-LUN-itmp-lun-0.001 0
> EOF
device-mapper: reload ioctl on my-backup failed: Invalid argument
Command failed

dmesg에 다음 오류가 포함되어 있습니다:

device-mapper: table: 254:0: linear: dm-linear: Device lookup failed
device-mapper: ioctl: error adding target to table

답변1

수행하려는 작업은 Device Mapper를 사용하여 수행할 수 있습니다(를 통해 구성 dmsetup(8)). 두 파일의 데이터가 실제로선의볼륨을 덤프하면 다음과 유사하게 루프 장치의 파일에서 생성할 수 있는 여러 블록 장치로 구성된 DM 장치를 생성할 수 있습니다.

# losetup /dev/loop0 /path/to/Backup-LUN-itmp-lun-0.000
# losetup /dev/loop1 /path/to/Backup-LUN-itmp-lun-0.001
# size1=$(blockdev --getsz /dev/loop0)
# size2=$(blockdev --getsz /dev/loop1)
# dmsetup create my-backup << EOF
0 $size1 linear /dev/loop0 0
$size1 $size2 linear /dev/loop1 0
EOF

이는 DM 장치를 설명하는 테이블을 읽고 다른 블록 장치처럼 사용할 수 있는 stdin블록 장치를 생성합니다 ./dev/mapper/my-backup

테이블 형식은

<start-sector> <length> <target> <target-args>

<start-sector><length>DM 장치 부분의 시작과 길이(512바이트 섹터)를 설명하는 것은 선형 조립을 위한 것 <target>입니다 . 대상 linear에 대한 인수는 linear사용할 장치와 장치 내부의 오프셋입니다(예를 들어 백업 소프트웨어가 덤프 앞에 일종의 헤더를 쓰는 경우 이를 건너뛸 수 있음) 0. 원시 덤프.

따라서 위의 예에서는 첫 번째 부분이 (를 통해 )에서 매핑되고 두 번째 부분이 (를 통해 ) 에서 my-backup매핑되도록 장치를 조립합니다.Backup-LUN-itmp-lun-0.000loop0Backup-LUN-itmp-lun-0.000loop1

백업이 단순한 선형 덤프(예: 출력을 여러 파일로 사용하고 분할하는 경우)가 아닌 경우 dd다른 DM 대상을 사용하여 행운을 얻을 수 있습니다.

편집하다:DM은 파일이 아닌 블록 장치만 매핑하므로 해당 losetup부분을 추가했습니다. 이를 사용하면 blockdev --getsz예제에서 볼 수 있듯이 크기에 대해 걱정할 필요가 없으며 사용할 수도 있습니다 .

관련 정보