2TBディスクがありますiscsi
。私は毎週このディスクをバックアップします。バックアップスクリプトは、iscsi ディスク全体のイメージを NFS のファイルにコピーします。残念ながら、画像を1枚にコピーせずに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)
)。両方のファイルのデータが実際に1つの場合善意ボリュームをダンプした後、次のようにループデバイス上のファイルから作成できる複数のブロックデバイスで構成された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>
linear
linear
0
したがって、上記の例では、最初の部分が(を介して)からマッピングされ、2番目の部分が(を介して)からマッピングされるようにmy-backup
デバイスが組み立てられています。Backup-LUN-itmp-lun-0.000
loop0
Backup-LUN-itmp-lun-0.000
loop1
バックアップが単純な線形ダンプを超えている場合(dd
出力を取得して複数のファイルに分割するなど)、他のDMターゲットを使用する方が良いかもしれません。
編集する:DMはファイルではなくブロックデバイスのみをマッピングするため、このlosetup
部分が追加されます。これを使用すると、blockdev --getsz
例に示すようにサイズを気にせずに使用することもできます。