고쳐 쓰다

고쳐 쓰다

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

-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.

누구든지 해결책을 제안할 수 있나요?

고쳐 쓰다

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

원하는 작업은 장치 매퍼를 사용하여 수행할 수 있습니다( 구성을 통해 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>선형 어셈블리에 사용될 DM <length>장치 부분의 시작과 길이(512바이트 섹터)를 설명합니다 . 대상에 대한 매개변수는 사용할 장치와 장치 내의 오프셋입니다(따라서 백업 소프트웨어가 덤프 앞에 일종의 헤더를 쓰는 경우 이를 건너뛸 수 있음). 이 예에서는 Raw 덤프에 적합합니다.<target>linearlinear0

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

백업이 단순한 선형 덤프 이상인 경우(예: dd출력을 가져와 여러 파일로 분할) 다른 DM 대상을 사용하는 것이 더 나을 수도 있습니다.

편집하다:DM은 파일이 아닌 블록 장치만 매핑하므로 이 losetup부분이 추가됩니다. 이를 사용하면 blockdev --getsz예제에 표시된 대로 크기에 대해 걱정하지 않고 사용할 수도 있습니다 .

관련 정보