修正する

修正する

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

したがって、上記の例では、最初の部分が(を介して)からマッピングされ、2番目の部分が(を介して)からマッピングされるようにmy-backupデバイスが組み立てられています。Backup-LUN-itmp-lun-0.000loop0Backup-LUN-itmp-lun-0.000loop1

バックアップが単純な線形ダンプを超えている場合(dd出力を取得して複数のファイルに分割するなど)、他のDMターゲットを使用する方が良いかもしれません。

編集する:DMはファイルではなくブロックデバイスのみをマッピングするため、このlosetup部分が追加されます。これを使用すると、blockdev --getsz例に示すようにサイズを気にせずに使用することもできます。

おすすめ記事