losetupを使ってソフトウェアRAIDを実験する
例えばハードディスクが一台しか無いけど、ソフトウェアRAID環境を作ってみたいという時に。
今回はlosetup を利用して、ローカルディスクのイメージファイルを使って
ソフトウェアRAIDを使ったRAID1の環境を作ってみます。
(言うまでもなく、冗長性は0ですけど、ね)
まずはddコマンドでイメージファイルを作ります。
練習なのでファイルサイズは小さく10Mです。
RAID1にするので2つ作ります。
# dd if=/dev/zero of=ext3-1.img bs=1024 count=10000 10000+0 records in 10000+0 records out 10240000 bytes (10 MB) copied, 0.341916 seconds, 29.9 MB/s # dd if=/dev/zero of=ext3-2.img bs=1024 count=10000 10000+0 records in 10000+0 records out 10240000 bytes (10 MB) copied, 0.461585 seconds, 22.2 MB/s
losetupコマンドを使ってループバックデバイスとして登録します。
# losetup /dev/loop1 ext3-1.img # losetup /dev/loop1 /dev/loop1: [0803]:807821 (ext3-1.img) # losetup /dev/loop2 ext3-1.img # losetup /dev/loop2 /dev/loop2: [0803]:807821 (ext3-1.img)
mdadmコマンドを使ってRAIDデバイスを作成します。
# mdadm -C /dev/md0 -l 1 -n 2 /dev/loop1 /dev/loop2 mdadm: array /dev/md0 started.
RAID1アレイが作成されだしたことを「/proc/mdstat」ファイルの中身を見て確認します。
# cat /proc/mdstat Personalities : [raid1] md0 : active raid1 loop2[1] loop1[0] 9920 blocks [2/2] [UU] [============>........] resync = 60.0% (6528/9920) finish=0.0min speed=3264K/sec unused devices: <none>
RAID1アレイの構築が終わりました。
# cat /proc/mdstat Personalities : [raid1] md0 : active raid1 loop2[1] loop1[0] 9920 blocks [2/2] [UU] unused devices: <none>
# mkfs.ext3 /dev/md0 mke2fs 1.39 (29-May-2006) Filesystem label= OS type: Linux Block size=1024 (log=0) Fragment size=1024 (log=0) 2480 inodes, 9920 blocks 496 blocks (5.00%) reserved for the super user First data block=1 Maximum filesystem blocks=10223616 2 block groups 8192 blocks per group, 8192 fragments per group 1240 inodes per group Superblock backups stored on blocks: 8193 Writing inode tables: done Creating journal (1024 blocks): done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 37 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override.
ファイルシステムが作成出来たので、これをマウントしてみます。
うまくマウントができました。
# mount /dev/md0 /mnt # df -k Filesystem 1K-ブロック 使用 使用可 使用% マウント位置 /dev/sda3 5734416 2465944 2972476 46% / /dev/sda1 101086 17055 78812 18% /boot tmpfs 257652 0 257652 0% /dev/shm /dev/md0 9601 1120 7985 13% /mnt
設定を解除するには「umount」コマンドでアンマウントしてから
「/dev/md0」デバイスを停止して、「losetup -d」でOKです。
# mdadm --stop /dev/md0 mdadm: stopped /dev/md0 # losetup -d /dev/loop1 # losetup -d /dev/loop2 # losetup /dev/loop1 loop: デバイス /dev/loop1 の情報を取得できません: そのようなデバイスやアドレスはありません # losetup /dev/loop2 loop: デバイス /dev/loop2 の情報を取得できません: そのようなデバイスやアドレスはありません
応用次第で気軽に検証環境作れると思います。
今日はこんなところで。