FreeNAS 9.1 ディスク交換

今まで倉庫用 HDD も PC に直接積んでいたのだけれど、ファイルサーバを構築して普段 PC を使う場所から離れたロフトにでも置いておけば、 PC の静音化ができるんじゃね? と思い立って、 FreeNAS 9.1 を使ってファイルサーバを構築した。

その上で、ディスク障害時の交換操作を練習しておこうと思って試した手順をメモ。

前半は WebGUI から操作する手順、後半はコンソールから操作する手順を掲載。

前提

  • RAID レベルは raidz1 (HDD x 3)
  • WebGUI から作成
  • シャットダウンして交換 (うちの環境では稼働中にディスクを接続すると既存のデバイス名もろとも狂ってしまってうまくいかず)
  • 実機での検証結果を Virtualbox で再現して記述

WebGUI から実施する場合

全体手順

  1. 事前確認
  2. OS シャットダウン
  3. ディスクを交換
  4. OS 起動
  5. WebGUI から Replace 操作

事前確認

上部メニューから、Storage → Pool 名を選択 → Volume Status を選択。ada2 が Offline となっている。

freenas-1-status

Storage → View Disks で、ada2 のシリアルで、交換対象のディスクを確認。

freenas-1-2-disks

OS シャットダウン ~ ディスク交換 ~ OS 起動

省略

WebGUI から Replace 操作

Storage → Pool 名を選択 → Volume Status を選択。

freenas-2-replace

OFFLINE となっているディスクを選択して、Replace を選択。

freenas-3-replace

リストから新しいディスクを選択して、Replace Disk を選択。

freenas-4-replace

組み込まれる。(以上!)

ちなみに、ディスクにデータが残っていると、エラーが表示されて組み込めない。

freenas-5-error

その場合は、Storage → View Disks → ディスクを選択 → Wipe で、ディスクを初期化してから Replace 操作をするとうまくいく。

#Quick じゃないと、全領域を掃除するので長時間かかる。

freenas-6-wipe

◆コンソールから実施する場合

全体手順

  1. 事前確認
  2. OS シャットダウン
  3. ディスクを交換
  4. OS 起動
  5. ディスクに GPT をつくる (gpart create)
  6. ディスクのパーティションを区切る (gpart add)
  7. ディスクの組み込み (zpool replace)

事前確認

コマンドでプールの状態とデバイスを確認。今回は ada2 が壊れた仮定。事前に zpool offline でオフライン化している。

  • zpool status → gptid を確認
  • gpart list → gptid からデバイス (Geom name) を確認
  • camcontrol identify ada2 → ディスクのシリアルを確認

[root@freenas] ~# zpool offline vol0 gptid/29dc060c-5c51-11e3-9931-08002762178b
[root@freenas] ~# zpool status
pool: vol0
state: DEGRADED
status: One or more devices has been taken offline by the administrator.
Sufficient replicas exist for the pool to continue functioning in a
degraded state.
action: Online the device using ‘zpool online’ or replace the device with
‘zpool replace’.
scan: resilvered 0 in 0h0m with 0 errors on Sat Dec 7 04:20:31 2013
config:

NAME STATE READ WRITE CKSUM
vol0 DEGRADED 0 0 0
raidz1-0 DEGRADED 0 0 0
gptid/29b0f9b7-5c51-11e3-9931-08002762178b ONLINE 0 0 0
8476249247959503198 OFFLINE 0 0 0 was /dev/gptid/29dc060c-5c51-11e3-9931-08002762178b
gptid/fc017733-5b9a-11e3-92df-08002762178b ONLINE 0 0 0
logs
gptid/9acb6820-5f38-11e3-a320-08002762178b ONLINE 0 0 0
cache
gptid/9f6ce716-5f38-11e3-a320-08002762178b ONLINE 0 0 0

errors: No known data errors
[root@freenas] ~# gpart list
Geom name: ada0
modified: false
state: OK
fwheads: 16
fwsectors: 63
last: 4194303
first: 63
entries: 4
scheme: MBR
Providers:
1. Name: ada0s1
Mediasize: 988291584 (942M)
Sectorsize: 512
Stripesize: 0
Stripeoffset: 32256
Mode: r1w0e1
attrib: active
rawtype: 165
length: 988291584
offset: 32256
type: freebsd
index: 1
end: 1930319
start: 63
2. Name: ada0s2
Mediasize: 988291584 (942M)
Sectorsize: 512
Stripesize: 0
Stripeoffset: 988356096
Mode: r0w0e0
rawtype: 165
length: 988291584
offset: 988356096
type: freebsd
index: 2
end: 3860639
start: 1930383
3. Name: ada0s3
Mediasize: 1548288 (1.5M)
Sectorsize: 512
Stripesize: 0
Stripeoffset: 1976647680
Mode: r0w0e0
rawtype: 165
length: 1548288
offset: 1976647680
type: freebsd
index: 3
end: 3863663
start: 3860640
4. Name: ada0s4
Mediasize: 21159936 (20M)
Sectorsize: 512
Stripesize: 0
Stripeoffset: 1978195968
Mode: r1w1e2
rawtype: 165
length: 21159936
offset: 1978195968
type: freebsd
index: 4
end: 3904991
start: 3863664
Consumers:
1. Name: ada0
Mediasize: 2147483648 (2.0G)
Sectorsize: 512
Mode: r2w1e4

Geom name: ada0s1
modified: false
state: OK
fwheads: 16
fwsectors: 63
last: 1930256
first: 0
entries: 8
scheme: BSD
Providers:
1. Name: ada0s1a
Mediasize: 988283392 (942M)
Sectorsize: 512
Stripesize: 0
Stripeoffset: 40448
Mode: r1w0e1
rawtype: 0
length: 988283392
offset: 8192
type: !0
index: 1
end: 1930256
start: 16
Consumers:
1. Name: ada0s1
Mediasize: 988291584 (942M)
Sectorsize: 512
Stripesize: 0
Stripeoffset: 32256
Mode: r1w0e1

Geom name: ada1
modified: false
state: OK
fwheads: 16
fwsectors: 63
last: 4294965214
first: 34
entries: 128
scheme: GPT
Providers:
1. Name: ada1p1
Mediasize: 2147483648 (2.0G)
Sectorsize: 512
Stripesize: 0
Stripeoffset: 65536
Mode: r1w1e1
rawuuid: 29abf0ed-5c51-11e3-9931-08002762178b
rawtype: 516e7cb5-6ecf-11d6-8ff8-00022d09712b
label: (null)
length: 2147483648
offset: 65536
type: freebsd-swap
index: 1
end: 4194431
start: 128
2. Name: ada1p2
Mediasize: 2196874640896 (2T)
Sectorsize: 512
Stripesize: 0
Stripeoffset: 2147549184
Mode: r1w1e2
rawuuid: 29b0f9b7-5c51-11e3-9931-08002762178b
rawtype: 516e7cba-6ecf-11d6-8ff8-00022d09712b
label: (null)
length: 2196874640896
offset: 2147549184
type: freebsd-zfs
index: 2
end: 4294965214
start: 4194432
Consumers:
1. Name: ada1
Mediasize: 2199022206976 (2T)
Sectorsize: 512
Mode: r2w2e5

Geom name: ada2
modified: false
state: OK
fwheads: 16
fwsectors: 63
last: 4294965214
first: 34
entries: 128
scheme: GPT
Providers:
1. Name: ada2p1
Mediasize: 2147483648 (2.0G)
Sectorsize: 512
Stripesize: 0
Stripeoffset: 65536
Mode: r1w1e1
rawuuid: 29d62e7d-5c51-11e3-9931-08002762178b
rawtype: 516e7cb5-6ecf-11d6-8ff8-00022d09712b
label: (null)
length: 2147483648
offset: 65536
type: freebsd-swap
index: 1
end: 4194431
start: 128
2. Name: ada2p2
Mediasize: 2196874640896 (2T)
Sectorsize: 512
Stripesize: 0
Stripeoffset: 2147549184
Mode: r0w0e0
rawuuid: 29dc060c-5c51-11e3-9931-08002762178b
rawtype: 516e7cba-6ecf-11d6-8ff8-00022d09712b
label: (null)
length: 2196874640896
offset: 2147549184
type: freebsd-zfs
index: 2
end: 4294965214
start: 4194432
Consumers:
1. Name: ada2
Mediasize: 2199022206976 (2T)
Sectorsize: 512
Mode: r1w1e2

Geom name: ada3
modified: false
state: OK
fwheads: 16
fwsectors: 63
last: 4294965214
first: 34
entries: 128
scheme: GPT
Providers:
1. Name: ada3p1
Mediasize: 2147483648 (2.0G)
Sectorsize: 512
Stripesize: 0
Stripeoffset: 65536
Mode: r1w1e1
rawuuid: fbfc5e89-5b9a-11e3-92df-08002762178b
rawtype: 516e7cb5-6ecf-11d6-8ff8-00022d09712b
label: (null)
length: 2147483648
offset: 65536
type: freebsd-swap
index: 1
end: 4194431
start: 128
2. Name: ada3p2
Mediasize: 2196874640896 (2T)
Sectorsize: 512
Stripesize: 0
Stripeoffset: 2147549184
Mode: r1w1e2
rawuuid: fc017733-5b9a-11e3-92df-08002762178b
rawtype: 516e7cba-6ecf-11d6-8ff8-00022d09712b
label: (null)
length: 2196874640896
offset: 2147549184
type: freebsd-zfs
index: 2
end: 4294965214
start: 4194432
Consumers:
1. Name: ada3
Mediasize: 2199022206976 (2T)
Sectorsize: 512
Mode: r2w2e5

Geom name: ada4
modified: false
state: OK
fwheads: 16
fwsectors: 63
last: 2147483614
first: 34
entries: 128
scheme: GPT
Providers:
1. Name: ada4p1
Mediasize: 4294967296 (4.0G)
Sectorsize: 512
Stripesize: 0
Stripeoffset: 20480
Mode: r1w1e2
rawuuid: 9acb6820-5f38-11e3-a320-08002762178b
rawtype: 516e7cba-6ecf-11d6-8ff8-00022d09712b
label: (null)
length: 4294967296
offset: 20480
type: freebsd-zfs
index: 1
end: 8388647
start: 40
2. Name: ada4p2
Mediasize: 1095216619520 (1T)
Sectorsize: 512
Stripesize: 0
Stripeoffset: 20480
Mode: r1w1e2
rawuuid: 9f6ce716-5f38-11e3-a320-08002762178b
rawtype: 516e7cba-6ecf-11d6-8ff8-00022d09712b
label: (null)
length: 1095216619520
offset: 4294987776
type: freebsd-zfs
index: 2
end: 2147483607
start: 8388648
Consumers:
1. Name: ada4
Mediasize: 1099511627776 (1.0T)
Sectorsize: 512
Mode: r2w2e6

[root@freenas] ~# camcontrol identify ada2
pass2: <VBOX HARDDISK 1.0> ATA-6 SATA 2.x device
pass2: 300.000MB/s transfers (SATA 2.x, UDMA6, PIO 8192bytes)

protocol ATA/ATAPI-6 SATA 2.x
device model VBOX HARDDISK
firmware revision 1.0
serial number VB76285c93-a07afa07
cylinders 16383
heads 16
sectors/track 63
sector size logical 512, physical 512, offset 0
LBA supported 268435455 sectors
LBA48 supported 4294965248 sectors
PIO supported PIO4 w/o IORDY
DMA supported WDMA2 UDMA6

Feature Support Enabled Value Vendor
read ahead yes yes
write cache yes yes
flush cache yes yes
overlap no
Tagged Command Queuing (TCQ) no no
Native Command Queuing (NCQ) yes 32 tags
SMART no no
microcode download no no
security no no
power management yes yes
advanced power management no no
automatic acoustic management no no
media status notification no no
power-up in Standby no no
write-read-verify no no
unload no no
free-fall no no
Data Set Management (DSM/TRIM) no
Host Protected Area (HPA) no

シリアル「VB76285c93-a07afa07」のディスクを引っこ抜いて交換すればいいとわかる。

OS シャットダウン ~ ディスク交換 ~ OS 起動

省略

ディスクに GPT をつくる

  • gpart create -s gpt ada2

[root@freenas] ~# gpart show ada2
gpart: No such geom: ada2.
[root@freenas] ~# gpart create -s gpt ada2
ada2 created
[root@freenas] ~# gpart show ada2
=> 34 4294965181 ada2 GPT (2T)
34 4294965181 – free – (2T)

ディスクのパーティションを区切る

既存のディスクとパーティションを一致されるために、まずほかのディスクの構成を確認。それに合わせて新しいディスクを区切る。

  • gpart show ada1 → ほかのディスクのパーティション構成を確認
  • gpart add -i 1 -t freebsd-swap -b 128 -s 3194304 ada2 → 一つ目のパーティションを swap として作成
  • gpart add -i 2 -t freebsd-zfs ada2 → ふたつめのパーティションを zfs として作成

[root@freenas] ~# gpart show ada1
=> 34 4294965181 ada1 GPT (2T)
34 94 – free – (47k)
128 4194304 1 freebsd-swap (2.0G)
4194432 4290770783 2 freebsd-zfs (2T)

[root@freenas] ~# gpart add -i 1 -t freebsd-swap -b 128 -s 4194304 ada2
ada2p1 added

[root@freenas] ~# gpart add -i 2 -t freebsd-zfs ada2
ada2p2 added

[root@freenas] ~# gpart show ada2
=> 34 4294965181 ada2 GPT (2T)
34 94 – free – (47k)
128 4194304 1 freebsd-swap (2.0G)
4194432 4290770783 2 freebsd-zfs (2T)

ディスクの組み込み

新しいディスクの freebsd-zfs パーティションの gptid を確認して、組み込み。

  • gpart list ada2 → freebsd-zfs の rawuuid を確認
  • zpool status → OFFLINE の NAME を確認
  • zpool replace 8476249247959503198 gptid/458fea71-5f52-11e3-8324-08002762178b → 組み込み

[root@freenas] ~# gpart list ada2
Geom name: ada2
modified: false
state: OK
fwheads: 16
fwsectors: 63
last: 4294965214
first: 34
entries: 128
scheme: GPT
Providers:
1. Name: ada2p1
Mediasize: 2147483648 (2.0G)
Sectorsize: 512
Stripesize: 0
Stripeoffset: 65536
Mode: r0w0e0
rawuuid: 1a786ce4-5f52-11e3-8324-08002762178b
rawtype: 516e7cb5-6ecf-11d6-8ff8-00022d09712b
label: (null)
length: 2147483648
offset: 65536
type: freebsd-swap
index: 1
end: 4194431
start: 128
2. Name: ada2p2
Mediasize: 2196874640896 (2T)
Sectorsize: 512
Stripesize: 0
Stripeoffset: 2147549184
Mode: r0w0e0
rawuuid: 458fea71-5f52-11e3-8324-08002762178b
rawtype: 516e7cba-6ecf-11d6-8ff8-00022d09712b
label: (null)
length: 2196874640896
offset: 2147549184
type: freebsd-zfs
index: 2
end: 4294965214
start: 4194432
Consumers:
1. Name: ada2
Mediasize: 2199022206976 (2T)
Sectorsize: 512
Mode: r0w0e0

[root@freenas] ~# zpool status
pool: vol0
state: DEGRADED
status: One or more devices has been taken offline by the administrator.
Sufficient replicas exist for the pool to continue functioning in a
degraded state.
action: Online the device using ‘zpool online’ or replace the device with
‘zpool replace’.
scan: scrub repaired 0 in 0h0m with 0 errors on Sat Dec 7 06:59:12 2013
config:

NAME STATE READ WRITE CKSUM
vol0 DEGRADED 0 0 0
raidz1-0 DEGRADED 0 0 0
gptid/29b0f9b7-5c51-11e3-9931-08002762178b ONLINE 0 0 0
8476249247959503198 OFFLINE 0 0 0 was /dev/gptid/29dc060c-5c51-11e3-9931-08002762178b
gptid/fc017733-5b9a-11e3-92df-08002762178b ONLINE 0 0 0
logs
gptid/9acb6820-5f38-11e3-a320-08002762178b ONLINE 0 0 0
cache
gptid/9f6ce716-5f38-11e3-a320-08002762178b ONLINE 0 0 0

errors: No known data errors
[root@freenas] ~# zpool replace vol0 8476249247959503198 gptid/458fea71-5f52-11e3-8324-08002762178b
[root@freenas] ~# zpool status
pool: vol0
state: ONLINE
scan: resilvered 440K in 0h0m with 0 errors on Sat Dec 7 07:20:41 2013
config:

NAME STATE READ WRITE CKSUM
vol0 ONLINE 0 0 0
raidz1-0 ONLINE 0 0 0
gptid/29b0f9b7-5c51-11e3-9931-08002762178b ONLINE 0 0 0
gptid/458fea71-5f52-11e3-8324-08002762178b ONLINE 0 0 0
gptid/fc017733-5b9a-11e3-92df-08002762178b ONLINE 0 0 0
logs
gptid/9acb6820-5f38-11e3-a320-08002762178b ONLINE 0 0 0
cache
gptid/9f6ce716-5f38-11e3-a320-08002762178b ONLINE 0 0 0

errors: No known data errors

今回はプール内に保存しているデータがないので、同期が一瞬で終わった。

広告

FreeNAS 9.1 ディスク交換」への1件のフィードバック

  1. ピンバック: RAID-ZのHDD1台交換 ← PCと映画とテレビと、3rd

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google フォト

Google アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中