やりたいこと:rawデバイスを作成し、起動時にrawデバイスとlvolをマッピングさせたい
環境:centos 7
そもそも、cent7.2って、まだrawって使えるの?から入った。
そこで、インストール直後の環境で、
# which raw
-> /usr/bin/raw
と返ってきたので、一安心。
次に、新しいパーティションを作るべく、
# fdisk -l
-> /dev/sdaに、/dev/sda1(/boot)、/dev/sda2(ルートパーティション)があったので、
拡張パーティションを作った。
fdiskのコマンドは忘れていたので、備忘として残す。
# fdisk /dev/sda
n -> 新しいパーティション作成
e -> 拡張パーティション作成
このときはパーティション番号を3にした。これで、/dev/sda3が作成完了。
でも、拡張パーティションはそのままでは使えないので、
# fdisk /dev/sda
n -> 新しいパーティション作成
l -> 論理パーティション作成
パーティション番号は5にした。
w -> 情報の書き込み
一回リブートして、
# fdisk -l
で、/dev/sda5がLinuxで見えていたので、成功。
あとは、
# pvcreate /dev/sda5
# vgcreate -s32m vg01 /dev/sda5
# lvcreate -L 1G -n lvol01 vg01
で、lvolを作って準備完了。
# raw /dev/raw/raw1 /dev/vg01/lvol01
を実行すると、
/dev/raw/raw1: bound to major 253, minor 4
と出力され、rawデバイスとのマッピング成功。
めでたしめでたし、と思ったのだが、
リブートすると、マッピングが外れてしまう。
どうも、centos6まで存在していたrawdevicesサービスが、
cento7でなくなった模様。
しょうがないので、
active_raw.shを作り、起動時にsystemd経由で呼び出すことにした。
#!/bin/bash raw /dev/raw/raw1 /dev/vg01/lvol01
/etc/systemd/system/active_raw.service
[Unit]
Description = active_raw daemon
[Service]
Type = simple
RemainAfterExit = yes
ExecStart = /root/active_raw.sh
[Install]
WantedBy = multi-user.target
これでやりたいことができた。
本当にcentos7でrawdevicesがないかは、
これから調査かな。
-------追記-------
/usr/lib/udev/rules.d/60-raw.rulesに以下の内容を追記することで、
上のようなsystemctlに登録しなくても、できることを確認。
ACTION=="add", KERNEL=="dm-4", RUN+="/usr/bin/raw /dev/raw/raw1 %N"
よかった。