[Users] 【急ぎ】バックアップファイルの、分割バックアップについて。

宮崎悟 s.miyaza @ gmail.com
2014年 12月 27日 (土) 14:43:50 JST


みやざきです。
よくわからなかったので、過去メールを見直しました。
>原因
>1.LiveUSBから起動後、バックアップのあるZFSパーティションをマウントできない。さらに、バックアップファイルもマウントできないこと。

この質問は、以前のこの話ですか?

> 質問1
> マニュアルの、「ZFSルートプールを再作成しルートプールのスナップショットを復元する方法」の2.を読み替えて、
>
> #mount /dev/dsk/c2t0d0p1/data   /mnt/pkg
>
>としたのですが、マウントできませんでした。何が間違ったのかわかりませんでした。

上記で言っているマニュアルでは、NFSマウント先をマウントする方法です。
 /dev/dsk/c2t0d0p1 はデバイスファイルです。Linuxでいうところの/dev/hdaなどと同様です。
ここに、別名でzpoolを作成しているなら、zpool import を行う必要があります。

# zpool import -R /mnt/pkg プール名

> 質問2
>4.の部分のところを次のように読み替えたのですがあっているでしょうか。
>
>#zpool create -f -o failmode=continue -R /a -m legacy -o cachefile=/etc/zfs/zpool.cache rpool c2t0d0p4
>
>c2t0d0p4は、からのパーティションです。
>c2t0d0p1の、バックアップイメージのある方を指定した方がいいでしょうか。


大体あってます。

まず、ファイルとZFSファイルシステムとデバイスの関係を理解しましょう。
Solaris11 では、root パーティションは、ZFSです。df コマンドで以下のように出力されるはずです。

Filesystem           1K-blocks      Used Available Use% Mounted on
rpool/ROOT/solaris   153176881  81210525  71966357  54% /

ZFS以外では、上記のrpool/ROOT/solaris の部分がデバイスファイル(/dev/dsk/c2t0d0p4など)になるはずです。
ZFSでは、ストレージプール(上記でいうところのrpool) とデバイスファイルが割り当てられます。
ストレージプールを作成するのが、zpool create コマンドです。ここでプール名とデバイスを指定します。

>#zpool create -f -o failmode=continue -R /a -m legacy -o cachefile=/etc/zfs/zpool.cache rpool c2t0d0p4

上記のコマンドを説明すると、c2t0d0p4 というデバイス(実際には/dev/dsk/c2t0d0p4 が使用されます)を使用して、
rpool という名前のストレージプールを作成します。zpool status でストレージプールがどのデバイスに割り当てられているかを
確認することができます。
以下は自分のマシンの例です。rpoolはミラー化されていて、c12t0d0s0 が割り当てられています。

# zpool status rpool
  pool: rpool
 state: ONLINE
 scan: scrub repaired 10.5M in 10h19m with 0 errors on Mon Oct 20 16:53:41 2014
config:

        NAME           STATE     READ WRITE CKSUM
        rpool          ONLINE       0     0     0
          mirror-0     ONLINE       0     0     0
            c12t0d0s0  ONLINE       0     0     0
            c12t3d0s0  ONLINE       0     0     0

ちなみに、c12t0d0 以下の、pとsの違いも説明しておきます。

pはパーティションの略です。fdiskなどで切った基本パーティションごとにファイルが作成されます。
fdiskは、intel系のマシンで動くOSならどれも同じだと思いますが、基本パーティションや拡張パーティションで
HDDを区切って使用することができます。Solaris11にもfdiskがあるので、man fdisk してみてください。

s はスライスの略です。パーティションの中を区切って使用します。これはSolaris独自の概念で、
fdiskで切ったパーティションを区切って使用します。スライスはformat コマンドで作成できます。

# format
                %~
Searching for disks...done

AVAILABLE DISK SELECTIONS:
       0. c12t0d0 <ATA    -WDC WD3200BEVT--1A11 cyl 38910 alt 2 hd 255 sec 63>
          /pci @ 0,0/pci103c,3118 @ 1f,2/disk @ 0,0
       1. c12t1d0 <ATA    -ST31500341AS   -CC1H cyl 60797 alt 2 hd 255 sec 189>
          /pci @ 0,0/pci103c,3118 @ 1f,2/disk @ 1,0
       2. c12t2d0 <ATA    -ST31500341AS   -CC1H cyl 60797 alt 2 hd 255 sec 189>
          /pci @ 0,0/pci103c,3118 @ 1f,2/disk @ 2,0
       3. c12t3d0 <ATA    -ST9320423AS    -SDM1 cyl 38910 alt 2 hd 255 sec 63>
          /pci @ 0,0/pci103c,3118 @ 1f,2/disk @ 3,0
       4. c12t4d0 <ATA-WDC WD30EZRX-00M-0A80-2.73TB>
          /pci @ 0,0/pci103c,3118 @ 1f,2/disk @ 4,0
       5. c12t5d0 <ATA-WDC WD30EZRX-00M-0A80-2.73TB>
          /pci @ 0,0/pci103c,3118 @ 1f,2/disk @ 5,0
Specify disk (enter its number): 0
selecting c12t0d0
[disk formatted]
/dev/dsk/c12t0d0s0 is part of active ZFS pool rpool. Please see zpool(1M).


FORMAT MENU:
        disk       - select a disk
        type       - select (define) a disk type
        partition  - select (define) a partition table
        current    - describe the current disk
        format     - format and analyze the disk
        fdisk      - run the fdisk program
        repair     - repair a defective sector
        label      - write label to the disk
        analyze    - surface analysis
        defect     - defect list management
        backup     - search for backup labels
        verify     - read and display labels
        save       - save new disk/partition definitions
        inquiry    - show vendor, product and revision
        volname    - set 8-character volume name
        !<cmd>     - execute <cmd>, then return
        quit
format> partition


PARTITION MENU:
        0      - change `0' partition
        1      - change `1' partition
        2      - change `2' partition
        3      - change `3' partition
        4      - change `4' partition
        5      - change `5' partition
        6      - change `6' partition
        7      - change `7' partition
        select - select a predefined table
        modify - modify a predefined partition table
        name   - name the current table
        print  - display the current table
        label  - write partition map and label to the disk
        !<cmd> - execute <cmd>, then return
        quit
partition> print
Current partition table (original):
Total disk cylinders available: 38910 + 2 (reserved cylinders)

Part      Tag    Flag     Cylinders         Size            Blocks
  0 unassigned    wm       1 - 38909      298.06GB    (38909/0/0) 625073085
  1 unassigned    wm       0                0         (0/0/0)             0
  2     backup    wu       0 - 38909      298.07GB    (38910/0/0) 625089150
  3 unassigned    wm       0                0         (0/0/0)             0
  4 unassigned    wm       0                0         (0/0/0)             0
  5 unassigned    wm       0                0         (0/0/0)             0
  6 unassigned    wm       0                0         (0/0/0)             0
  7 unassigned    wm       0                0         (0/0/0)             0
  8       boot    wu       0 -     0        7.84MB    (1/0/0)         16065
  9 unassigned    wm       0                0         (0/0/0)             0

また、prtvtoc で表示することが可能です。

# prtvtoc /dev/dsk/c12t0d0s0
                %~
* /dev/dsk/c12t0d0s0 partition map
*
* Dimensions:
*     512 bytes/sector
*      63 sectors/track
*     255 tracks/cylinder
*   16065 sectors/cylinder
*   38912 cylinders
*   38910 accessible cylinders
*
* Flags:
*   1: unmountable
*  10: read-only
*
* Unallocated space:
*       First     Sector    Last
*       Sector     Count    Sector
*           0     16065     16064
*
*                          First     Sector    Last
* Partition  Tag  Flags    Sector     Count    Sector  Mount Directory
       0      0    00      16065 625073085 625089149
       2      5    01          0 625089150 625089149
       8      1    01          0     16065     16064


s2がスライス全体を表すというルールがありますが、s0~s7の8つのスライスを作成できます。
s8 はIntel系だけ作成される特殊な領域だと思ってください。
Solaris11 のLiveUSBで作成した場合は、たいていs0にディスクのすべてが割り当てられて
いるはずです。

HDD全体                        /dev/dsk/c0t0d0
パーティション                   /dev/dsk/c0t0d0p0


さて、話を戻します。以下の点を再度確認させてください。
#メールが1スレッドになっていないので、ちゃんと追いかけるのが大変だったので。
・OSはSolaris11.2 ですか?バージョンによってコマンドが微妙に違うことがあります。
・バックアップしたマシンと、リストアするマシンは同じマシンですか?別のマシンですか?
・fdisk でどのようにパーティションを切っていますか?fdisk で確認できます。
・バックアップ元のrpoolは、どのデバイスに作成されていますか?zpool status で確認できます。
・バックアップしたファイルはどこに置きましたか?
・リストアをどのデバイスに行おうとしていますか?
 c2t0d0p4は、c2t0d0というディスクの4番目のパーティションです。

このあたりを整理しましょう。
実際のバックアップの流れですが、以下のような感じになります。

(1) rpooのsnapshot を取る(-r を使用しているはずです)
(2) zfs send で 上記 snapshot をバックアップファイルに保管する。
(3) 保管したバックアップファイルを 別の場所(マシン、メディア)に保管する

ここまではできていると思います。

リストアは以下のような流れです。
(1) LiveUSB/CDなどでブート
(2) バックアップファイルをコピー
     上記で出てきた手順2では、NFSマウント使用としています。
(3) rpoolを再作成する(代替rootパスを使用)
(4) バックアップファイルから、rpoolへsnapshotを復元(zfs recieve)
(5) 起動可能なように、rpool の設定や起動ブロックのインストールを行う

バックアップまではうまくいっていると思います。
可能であればバックアップファイルはNFSやscpを使用して、別のマシンに置いたほうがいいと思います。
LiveUSBではネットワーク接続できるので、別のマシンからコピーするのが楽です。


長々と書きましたが、SolarisやZFSに関して正直どういう理解をしていて、
何をしようとしているのかがよく分かりません。
少し整理しませんか?

以上、よろしくお願いします。


--
みやざきさとる(Satoru MIYAZAKI)
s.miyaza @ gmail.com
http://twitter.com/s_miyaza


2014年12月27日 12:14 Inoue Takuma <takumaro @ outlook.com>:
> 大村様 宮崎様
>
> 井上です。
>
> 分割バックアップよりも、ZFSで作った、バックアップファイルを、リストアできないで困っています。
>
> 原因
> 1.LiveUSBから起動後、バックアップのあるZFSパーティションをマウントできない。さらに、バックアップファイルもマウントできないこと。
>
> 2.バックアップ専用のPool用の、パーティションが必要なのか、それともバックアップファイルのある、パーティションを指定すればよいのか。
>
> です。これを解決しないと先に進めません。
>
> ぜひ、ご教授願います。
>
> 補足:分割バックアップは、おなじHDD上に作ったFAT32パーテションをマウントさせそこにバックアップファイルを置こうとしました。
>
> しかし、4GBの壁にぶち当たり、ファイルを置けなくなったということです。
>
> exFATに、Solarisが対応していれば、変更しようかと考えています。
>
> よろしくお願いいたします。
>
> 井上
>


Users メーリングリストの案内