*

GEOM_LABEL をちょっと理解してみる

公開日: : 最終更新日:2014/02/04 FreeBSD, GEOM

Seichan です.こんばんわ.
GEOM 再学習」で宣言したとおり,GEOM の何かについて書いていきます.
今回は基本となる.というか,管理上便利なので是非使っていきたい「ラベル」についてです.

 SPONSORED LINK
 

1. ラベル名での管理の利点

ラベルは,デバイス名やパーティション名に名前を付け,マウント時にラベル名を指定したマウントが出来るようになり,デバイス名を意識しなくてもよくなります.自分や自分の環境がそうなのですが,ディスクが何個もあり,RAID を構成するために同じ型番のディスクを何個も接続していたりします.さらに,ディスクを増やしたり減らしたり.なんて事があります.こうなると増減のタイミング等でデバイス名が変わる事になりますので,デバイス名での管理だと難しくなってしまいます.

こういったシチュエーションであらかじめラベルとしてディスクに名前を付けてあげれば,以降はラベル名での管理になるのでディスクにラベル名を印刷したテプラを貼っておくことで何かあった際のデバイス特定も容易になります.

こういった,デバイス名(番号)の管理から名前での管理に切り替えて少し運用負荷の軽減を狙ってみてもよいのではないでしょうか.

2. ラベルの種類

GEOM LABEL クラスではいくつかのラベルの種類があります.正確にはファイルシステム毎にラベル機構が用意されています.また,これらのファイルシステムに依存せずにラベルを管理する方法もあります.

ファイルシステムで用意されているもので FreeBSD でよくつかわれそうなものとして以下が挙げられます.各ファイルシステム毎のディレクトリ以下にラベル名のデバイスファイルが生成されます.

  • UFS1/UFS2 のボリューム名 (/dev/ufs)
  • UFS1/UFS2 のファイルシステムID (/dev/ufsid)
  • FAT12/16/32 等の MSDOSFS (/dev/msdosfs)
  • CD-ROM 等の ISO9660 (/dev/iso9660)
  • NTFS (/dev/ntfs)

また,GPT パーティションではパーティション単位でもラベルを付与出来ます.

  • GPT ラベル  (/dev/gpt)
  • GPT UUID (/dev/gptid)

3. ラベルを付ける (glabel)

glabel はファイルシステムに依存せずにラベルを管理する事が出来ます.ファイルシステムでラベルが用意されていない場合や複数のファイルシステムを扱うため,統一的に管理したい.なんていう場合に有用だと思います.

ラベルを付けるには,下のように glabel label [ラベル名] [デバイス名] という引数で実行します.
サブコマンドが label ではなく create の場合,ディスクにラベル名が書かれませんので再起動時にクリアされてしまいます.試験等の一時的なラベル付与等の場合は create を使いますが,恒久的にラベルを使いたい場合は label サブコマンドを指定してください.

# glabel label DISK01 /dev/da1

ラベルが設定されれば,以下のように status で確認することが出来ます.この例では今回設定したものだけ表示させていますが,FreeBSD 9.x を GPT で導入している場合は gptid から始まる行も表示されます.

# glabel status
                                      Name  Status  Components
                              label/DISK01     N/A  da1

また,glabel の場合は /dev/label 以下にデバイスファイルが生成されていますので,こちらでも確認が可能です.

# ls -l /dev/label
total 0
crw-r-----  1 root  operator  0x68 Dec 21 13:30 DISK01

4. ラベル名を指定してファイルシステムを作る

UFS であれば newfs を実行する際,デバイス名ではなくラベル名を指定してファイルシステムを作成することが出来ます.

# newfs /dev/label/DISK01
/dev/label/DISK01: 20480.0MB (41943032 sectors) block size 32768, fragment size 4096
        using 33 cylinder groups of 626.09MB, 20035 blks, 80256 inodes.
super-block backups (for fsck_ffs -b #) at:
 192, 1282432, 2564672, 3846912, 5129152, 6411392, 7693632, 8975872, 10258112,
 38467392, 39749632, 41031872

newfs 完了後はそのままマウントする事が可能です.

5. ラベル名を削除する

間違ってラベルを設定してしまった時などは,当然ですがラベル名を削除する事が可能です.
削除は glabel clear [デバイス名] になります.ラベル名では無く,デバイス名を指定する必要があるので注意してください.
また,サブコマンドで stop や destroy がありますがディスクに書かれたラベルの削除は行いませんので注意してください.

# glabel clear da1

ラベルを削除しても,作成,利用していたファイルシステムの中身は当たり前ですがデバイス名を指定したマウントを行うことでそのまま利用することが出来ます.

6. GPT パーティションでラベル名を設定する

GPT パーティション側でラベル名を設定する事が出来ます.実はこれが一番無難な方法かと思っています… 先日書いた「AFT(4k block) HDD を ZFS で使う場合の良い方法」でも GPT パーティションにラベルを付与していますが,これは glabel でラベル設定後,ZFS(zpool) をラベル名指定で作成しても,作成した時点で label が削除されてしまう.という事象になったからです.GPT パーティションでラベル付与した場合はそんなことはありませんでした.メタデータをどこに書くのか? という問題だと思っていますが,FreeBSD ではインストールから GPT が基本となっていますので,こっちで設定してあげるのが一番楽かなぁと思います.

順序としては,通常どおり GPT ディスクを作成した後にパーティションを作成します.パーティションを作成する際にラベル名を合わせて指定します.
以下の例では,作成するパーティション de1p1 に対して,ラベル名として DISK01 を指定しています.

# gpart create -s gpt /dev/da1
da1 created
# gpart add -t freebsd-ufs -l DISK01 /dev/da1
da1p1 added

パーティションが作成された後,結果を確認するには gpart で確認するのが一番良い方法です.gpart show に -l オプションを付ける事でラベル名を表示することが出来ます.

# gpart show -l da1
=>      34  41942973  da1  GPT  (20G)
        34  41942973    1  DISK01  (20G)

その他の方法として,glabel コマンドで確認することも当然出来ますし,ディレクトリ /dev/gpt 以下を確認してもよいでしょう.

# glabel status
                                      Name  Status  Components
                                gpt/DISK01     N/A  da1p1

# ls /dev/gpt
DISK01

CDメディア等のラベル

CD メディアはたとえば CD-R を作成する際のボリューム名がそのままラベル名として認識します.CD を認識するとボリューム名が読み取られそのままラベル名でアクセスできるようになります.

# glabel status
                                      Name  Status  Components
                   iso9660/FREEBSD_INSTALL     N/A  cd0

# ls /dev/iso9660
FREEBSD_INSTALL

ですが,CD の場合ラベル名を使用して明示的にマウントする事は稀だと思いますので利用頻度は低いのでは… と思います.Seichan 的な利用価値は,今ドライブに挿入している物がマウントしなくてもある程度理解出来そうだ.という所ですね.

ということで GEOM LABEL をちょっと理解してみる でした.

SPONSORED LINK
  ☆ ブログランキング参加しました (*≧∀≦)ノシ
にほんブログ村 IT技術ブログ FreeBSDへ 

関連記事

zfs_feature_2

AFT(4k block) HDD を ZFS で使う場合の良い方法

Seichan です.こんばんわ. 2TB あたりから 1Block が 512Byte では

記事を読む

FreeBSD

FreeBSD をクライアントとして使用する (firefox)

おひさしぶりです.seichan です. 更新をサボっていたのですが,取り合えずまたクライアントネ

記事を読む

no image

でーたがとんだ?

え〜と.PostgreSQL の復旧をしたと先に書いたのですが,完全復活じゃぁ無いようで… 1週間分

記事を読む

no image

djbdns から bind へ移行

DMZ 構成にして,ネットワーク構成を色々変更して,何か良くわからないんですが, djbdns でう

記事を読む

no image

NFS Lock 問題

もう少しで眠れそうです.seichan です. 最近,Web アクセスが出来なかった皆さん.本当に申

記事を読む

no image

Pukiwiki

自民党キター と喜んでいる最中ですが,はまっていた事があったの備忘録をかねてのメモ. # 選挙ネタは

記事を読む

no image

MyServerRooM

ばんわー Seichan です. ちょっと前に,DDS4 チェンジャードライブのエントリをのっけまし

記事を読む

no image

FreeBSD 4.11 と 6.1

寝ようと思っても,咳がひどくて眠れない Seichan Death. 月末に妹がこっちに来るようなの

記事を読む

FreeBSD

FreeBSD 6.3-RELEASE でちょっと遊んだ

Seichan です.インフルエンザで丸々一週間会社を休んでしまいました...有給休暇の残がゼロに!

記事を読む

no image

papu さんへご報告

なんだか,稚内にいないようなのでこっちに書いておく. papu さんのサイトを,こっちのサーバに移動

記事を読む

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Google Adsense

ssl_icon
PHPki で簡単証明書運用 (5) 【管理ユーザのメンテナンスとCRLの取得】

Seichanです.こんばんわ. いつものとおり,だいぶ日が経ってし

ssl_icon
PHPki で簡単証明書運用 (4) 【作成した証明書を管理する】

Seichanです.こんばんわ. 先日の「PHPki で簡単証明書運

ssl_icon
PHPki で簡単証明書運用 (3) 【署名されたサーバ証明書を作る】

Seichan です.こんばんわ. さて,先日の「PHPki で簡単

ssl_icon
PHPki で簡単証明書運用 (2) 【初期設定と Root CA 証明書作成】

Seichan です.こんばんわ. さて,先日の「PHPki で簡単

ssl_icon
PHPki で簡単証明書運用 (1) 【PHPki の修正と導入 (修正版)】

Seichan です.こんばんわ. 先日「PHPki で簡単証明書運

→もっと見る

PAGE TOP ↑