codr.cc - share code, live.
http://codr.cc/
コードをブラウザからリアルタイムで複数人で共有して編集できる。
http://www.ideaxidea.com/archives/2011/04/cord_cc.html
http://d.hatena.ne.jp/atomer/20110430/1304174788
このころからは、だいぶ変化している。
http://www.lifehacker.jp/2011/01/110116codrcc.html
インターフェイスレスの設計はいいな。
サムスン、「GALAXY S2」などの試作品をアップルに提出へ--裁判所命令で
http://japan.cnet.com/apple/35003148/
問題となっているスマートフォンとタブレットは、サムスンの「GALAXY S2」「GALAXY Tab 8.9」「GALAXY Tab 10.1」「Infuse 4G」「Droid Charge」だ。サムスンにとっては幸いなことに、提出された製品の調査は、この訴訟を担当するApple側の弁護団だけで行う予定で、Apple社員はおろかAppleの社内弁護士さえサムスン製のデバイスを見る予定はない。
日本語版 Windows Phone 7 に搭載されたカーブフリック
http://blogs.msdn.com/b/shintak/archive/2011/05/25/10168032.aspx
あー、これはいいねぇ。
でも、特許取っただろうなぁ...
グーグルが提唱する新ブラウザーの形とは? URL非表示でAndroidへの進出強化も...
http://www.gizmodo.jp/2011/05/urlandroid.html
Chrome 13では、URLが表示されないUIに変更される?
プログラマの地位向上のためにやれること
NHK放送技術研究所 フレキシブル制作システム ソースプログラム公開
http://www.nhk.or.jp/strl/flexible/
公開するシステム
「フレキシブル制作システム(ウェブ編集システム)」
「分散ファイルシステム」
「挿入削除機能付きファイルシステム」
「高速ファイル転送システム」
「素材作成用MXFライブラリ」
残念ながら、利用許諾がソース公開して意味がある内容じゃない。一部はGPL2もあるのにな。
分散ファイルシステムは面白そうなのに。
http://www.nhk.or.jp/strl/flexible/doc_bigpool.html
オープンソースのリアルタイムWeb解析/モニタリングツール「Snowfinch」
http://sourceforge.jp/magazine/11/05/25/0859206
https://github.com/jcxplorer/snowfinch
MongoDBを使ってリアルタイムを実現。
Rubyで動作。MITライセンス。
インサイドAndroid
http://www.kapg.org/J_Inside_Android
solaさんが見かけたというハングルの本。
日本で入手できないかな...
目次だけでも参考になる。
LinkedIn、デジタルガレージと組んで国内展開 年内に日本語版
http://www.itmedia.co.jp/news/articles/1105/25/news043.html
この組み合わせはイマイチかなぁ...
独自に日本法人を立ち上げたほうがよかったのではないか。
Linus Torvalds氏、「Linuxカーネル 2.8/3.0」への移行を検討中?
http://sourceforge.jp/magazine/11/05/25/046222
なんか、積極的にメジャーバージョンアップする理由が見つからないのだけど。
増えてもいいのじゃ?
日本で「Excelをワープロとして使う」のが流行った理由
http://d.hatena.ne.jp/maraigue/20110525/1306296900
Lotus123の頃からワープロとして使う人は多かったですね。
主に罫線で。
15分で人体フィギュアを作る3Dスキャナー/プリンター
http://jp.techcrunch.com/archives/20110524video-check-out-blablablabs-3d-body-scannerprinter-at-tc-disrupt/
Kinectと3Dプリンタの合わせ技。
これはいいねぇ!
イベントとかで流行りそう。
ペットとか二人でとか。
着色も自動化できたらいいのに。
15分ってのを満たすためか、プリンタの性能か、出来たフィギュアは小さいし、単色だし、再現性はよくなさそう。
全身よりトルソとかのほうがいいのじゃないだろうか。
Webサイトのスナップショットを自動的に取るCodeGuard–旧状への復元が可能
http://jp.techcrunch.com/archives/20110524codeguard/
FTPでバックアップとか、それいつの時代のコンテンツ?
ミラー運用で片方のディスクの先頭を書き潰してしまった場合の修復手順(ダメダメ編)
作業マシンが、RAID1だったということをすっかり忘れてて、sdbの頭からddしてしまつた。
こんなミスはしたことない(^^;。
root@redmine:~# dd if=/dev/zero of=/dev/sdb ^C61019+0 records in 61019+0 records out 31241728 bytes (31 MB) copied, 1.72095 s, 18.2 MB/s
あわてて、止めたけど、すでに31MBも書き潰してしまつた。
当然ながら、パーティションテーブルもない。
root@redmine:~# fdisk -l /dev/sdb Disk /dev/sdb: 500.1 GB, 500107862016 bytes 255 heads, 63 sectors/track, 60801 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000 Disk /dev/sdb doesn't contain a valid partition table
状況の確認
リカバリしないとなぁ...
SqueezeのインストーラーでパーティションもRAIDも構成したので、どんな構成だったかも覚えてない(^^;。
まず生きているほうのパーティションテーブルを確認。
root@redmine:~# fdisk -l /dev/sda Disk /dev/sda: 500.1 GB, 500107862016 bytes 255 heads, 63 sectors/track, 60801 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x0000f5f2 Device Boot Start End Blocks Id System /dev/sda1 1 60055 482384896 fd Linux raid autodetect /dev/sda2 60055 60802 5998593 5 Extended /dev/sda5 60055 60802 5998592 fd Linux raid autodetect
sda1はrootfs。
sda5はswapかな。
どちらもmdでRAID1構成になっている。
mdのオペレーションなんて、もう何年もやってないので、すっかり忘却しているなぁ...
root@redmine:~# cat /proc/mdstat Personalities : [raid1] md1 : active (auto-read-only) raid1 sda5[0] sdb5[1] 5998528 blocks [2/2] [UU] md0 : active raid1 sda1[0] sdb1[1] 482384832 blocks [2/2] [UU] unused devices: <none>
md構成は壊れていないと認識している。
生きているドライブを上書きしただけだし、sda優先になっているので電源を切らない限り動作に問題はないだろう。
修理の戦略
さて、修理の戦略を立てる。
まずは、動いたままなので、パーティションテーブルを復旧する。
swap領域は一部上書きしたので、たぶんダメ。こちらは開放してデグレードさせる。ddで書き潰しておく。mdのリビルドをやる。
rootfsは、まだ生きているので、これはパーティションテーブルを復旧すると治るのじゃないかと甘い期待をしてみる。
なんせ500GBなのでリビルドかけるだけで気が遠くなる時間がかかるから...
パーティションテーブルの復旧
これはマニュアルで。
幸いなことに、同じメーカーの同じドライブなので、sdaのMBRをコピって上書きする。
root@redmine:~# dd if=/dev/hda of=mbr.img bs=512 count=1 dd: opening `/dev/hda': No such file or directory root@redmine:~# dd if=/dev/sda of=mbr.img bs=512 count=1 1+0 records in 1+0 records out 512 bytes (512 B) copied, 7.4122e-05 s, 6.9 MB/s root@redmine:~# dd if=mbr.img of=/dev/sdb bs=512 count=1 1+0 records in 1+0 records out 512 bytes (512 B) copied, 7.3887e-05 s, 6.9 MB/s root@redmine:~# fdisk -l /dev/sdb Disk /dev/sdb: 500.1 GB, 500107862016 bytes 255 heads, 63 sectors/track, 60801 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x0000f5f2 Device Boot Start End Blocks Id System /dev/sdb1 1 60055 482384896 fd Linux raid autodetect /dev/sdb2 60055 60802 5998593 5 Extended /dev/sdb5 60055 60802 5998592 fd Linux raid autodetect
というわけで復活。
Disk identifierが同じだけど?
でも、Disk identifierが同じになっているな。これって使っているのだったっけ?
http://www.linuxquestions.org/questions/linux-general-1/what-is-disk-identifier-740408/
A Disk Identifier (or Disk Signature) applies to an entire hard disk drive (not a single partition). A Disk Identifier/Disk Signature is a 4-byte (longword) number that is randomly generated when the Master Boot Record/Partition Table is first created and stored. The Disk Identifier is stored at byte offset 1B8 (hex) through 1BB (hex) in the MBR disk sector. Windows Vista uses the Disk Signature to locate boot devices so changing it can prevent Vista from booting. So far as I know Grub and Linux don't use the Disk Identifier.
Linuxでは、使ってないみたいね。
このスレッドには、Disk identifierを書き換えるCのサンプルもある。
でも、fdiskを使ったほうが簡単。
念のため変更しておく。
root@redmine:~# fdisk /dev/sdb WARNING: DOS-compatible mode is deprecated. It's strongly recommended to switch off the mode (command 'c') and change display units to sectors (command 'u'). Command (m for help): x Expert command (m for help): m Command action b move beginning of data in a partition c change number of cylinders d print the raw data in the partition table e list extended partitions f fix partition order g create an IRIX (SGI) partition table h change number of heads i change the disk identifier m print this menu p print the partition table q quit without saving changes r return to main menu s change number of sectors/track v verify the partition table w write table to disk and exit Expert command (m for help): i New disk identifier (current 0x0000f5f2): 0x0000f5f3 Disk identifier: 0x0000f5f3 Expert command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. WARNING: Re-reading the partition table failed with error 16: Device or resource busy. The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8) Syncing disks.
UUIDの確認
UUIDはパーティションごとに持っている。
昨今は、ドライブの認識にこいつを使っているから、話がめんどくさい。
こいつも上書きされたから、同じになっている。
ミラー構成にしてあるので、UUIDは同じでいいはず。
http://www.linuxhomenetworking.com/wiki/index.php/Quick_HOWTO_:_Ch26_:_Linux_Software_RAID
All three partitions were given the UUID label 77b695c4:32e5dd46:63dd7d16:17696e09 when the mdadm command created device /dev/md0. The mdadm.conf file makes sure this mapping is remembered when you reboot.
同じになっていることを確認。
root@redmine:~# blkid /dev/sda* /dev/sda1: UUID="4203a1e6-c935-ba5a-0090-cc13c02a0c21" TYPE="linux_raid_member" /dev/sda5: UUID="7d4576d3-ca18-c730-5edd-8ffeb6891536" TYPE="linux_raid_member" root@redmine:~# blkid /dev/sdb* /dev/sdb1: UUID="4203a1e6-c935-ba5a-0090-cc13c02a0c21" TYPE="linux_raid_member" /dev/sdb5: UUID="7d4576d3-ca18-c730-5edd-8ffeb6891536" TYPE="linux_raid_member" ||< RAID設定のUUIDとの一致も確認しておく。 >|| root@redmine:~# cat /etc/mdadm/mdadm.conf | grep UUID ARRAY /dev/md0 UUID=4203a1e6:c935ba5a:0090cc13:c02a0c21 ARRAY /dev/md1 UUID=7d4576d3:ca18c730:5edd8ffe:b6891536
問題ない。
同じドライブを使っていない場合は、fdisk -l の結果をバックアップしておいたほうがいい。
ホントは、パーティションテーブルをバックアップしておくといいんだけど(^^;。
同じでない場合は、sdaのfdiskの結果から、"Endの数字/headsの数字/sectorsの数字"した値を境界にして、fdiskで新規にパーティションを作る。
UUIDはext系のfsを使ってれば以下のように設定できる。
# tune2fs -U [UUID] /dev/[tagetDevice]
swapの再構成と痛恨のミス...
swapのsdb1をRAID構成から外しておく。
root@redmine:~# mdadm --manage /dev/md0 --fail /dev/sdb1 mdadm: set /dev/sdb1 faulty in /dev/md0
あちゃ、痛恨のミス。
swapなのはmd1-sdb5じゃんか... orz
でかいほうのボリュームを外しちゃったよ... orz
root@redmine:~# cat /proc/mdstat Personalities : [raid1] md1 : active (auto-read-only) raid1 sda5[0] sdb5[1] 5998528 blocks [2/2] [UU] md0 : active raid1 sda1[0] sdb1[2](F) 482384832 blocks [2/1] [U_] unused devices: <none>
今日はダメダメな日だわ...
戦略変更。全部リビルドすることに... orz
しょうがないので、全部リビルドさせる。
ふつーすぎて、つまらんな...
root@redmine:~# mdadm --manage /dev/md1 --fail /dev/sdb5 mdadm: set /dev/sdb5 faulty in /dev/md1 root@redmine:~# cat /proc/mdstat Personalities : [raid1] md1 : active raid1 sda5[0] sdb5[2](F) 5998528 blocks [2/1] [U_] md0 : active raid1 sda1[0] sdb1[2](F) 482384832 blocks [2/1] [U_] unused devices: <none>
リビルド。
root@redmine:~# mdadm /dev/md0 -a /dev/sdb1 mdadm: Cannot open /dev/sdb1: Device or resource busy
なぬ?
こうだっけ?
root@redmine:~# mdadm --manage /dev/md0 -a /dev/sdb1 mdadm: Cannot open /dev/sdb1: Device or resource busy
ぬう?
root@redmine:~# mdadm --add /dev/md0 /dev/sdb1 mdadm: Cannot open /dev/sdb1: Device or resource busy
あー、うろおぼえでは、壊してしまうな...
ほんとダメな日。
なんでリビルド開始しないの???
RAIDの状態チェック。
root@redmine:~# mdadm --detail /dev/md0 /dev/md0: Version : 0.90 Creation Time : Fri May 13 12:56:38 2011 Raid Level : raid1 Array Size : 482384832 (460.04 GiB 493.96 GB) Used Dev Size : 482384832 (460.04 GiB 493.96 GB) Raid Devices : 2 Total Devices : 2 Preferred Minor : 0 Persistence : Superblock is persistent Update Time : Thu May 26 15:01:24 2011 State : clean, degraded Active Devices : 1 Working Devices : 1 Failed Devices : 1 Spare Devices : 0 UUID : 4203a1e6:c935ba5a:0090cc13:c02a0c21 Events : 0.76 Number Major Minor RaidDevice State 0 8 1 0 active sync /dev/sda1 1 0 0 1 removed 2 8 17 - faulty spare /dev/sdb1
想定通りだな。
sdb1が再ジョインできないのはなんでだ?
あ、spareになってるや。
removeしてないからか。
それば、busyだわな。
root@redmine:~# mdadm /dev/md0 -r /dev/sdb1 mdadm: hot removed /dev/sdb1 from /dev/md0 root@redmine:~# mdadm /dev/md1 -r /dev/sdb5 mdadm: hot removed /dev/sdb5 from /dev/md1 root@redmine:~# cat /proc/mdstat Personalities : [raid1] md1 : active raid1 sda5[0] 5998528 blocks [2/1] [U_] md0 : active raid1 sda1[0] 482384832 blocks [2/1] [U_] unused devices: <none>
再構築。
root@redmine:~# mdadm /dev/md1 -a /dev/sdb5 mdadm: re-added /dev/sdb5 root@redmine:~# mdadm /dev/md0 -a /dev/sdb1 mdadm: re-added /dev/sdb1 root@redmine:~# cat /proc/mdstat Personalities : [raid1] md1 : active raid1 sdb5[2] sda5[0] 5998528 blocks [2/1] [U_] [====>................] recovery = 24.9% (1495616/5998528) finish=2.0min speed=36634K/sec md0 : active raid1 sdb1[2] sda1[0] 482384832 blocks [2/1] [U_] resync=DELAYED unused devices: <none>
あとはエラーが出ないことを祈りながら、待つだけ...
500GBのこの環境で、予想時間表示では100分くらい。
起動できるの?
まだ、GRUB関係の起動部分はどうなってしまったかという問題はあるな。
md1の時のGRUB2ってどうやって設定するのだったかな?
/boot/grub/grub.cfgを見ると、どうもちゃんとmdを認識するようだ。
GRUB2恐るべし。
MBRごと上書きしたし、これは問題なさそうかな。
とりあえず書いておく。
root@redmine:~# grub-install /dev/sda Installation finished. No error reported. root@redmine:~# grub-install /dev/sdb Installation finished. No error reported.
というわけで、無事リビルド終わり。
root@redmine:~# cat /proc/mdstat Personalities : [raid1] md1 : active raid1 sdb5[1] sda5[0] 5998528 blocks [2/2] [UU] md0 : active raid1 sdb1[1] sda1[0] 482384832 blocks [2/2] [UU] unused devices: <none>
再起動後も無事に動いています。
さて、普通のマシンでHotswapするにはどうしたらいいんだろう
今回はミスにすぎなかったですが、リアルにデグレードした時にはどうしたらいいんでしょう?
無停止を強要されるのでなければ再起動しろってことなんでしょうけど...
手順としては、デバイス落として、抜いて挿して、SCSIをrescanさせればよかったのだったっけ?
というわけで、リビルドがせっかく終わったのだけど、演習する。
前に調べたのは2006年で、そのときはマトモな方法がなかったのね。
http://d.hatena.ne.jp/kinneko/20060407/p13
ttp://linux-ata.org/って、ロシア語のサイトに行っちゃうなぁ...
いまはこのあたり?
https://ata.wiki.kernel.org/index.php/Libata_Feature_Table
さすがにhotplugはサポートされている。
https://ata.wiki.kernel.org/index.php/Software_status#Hotplug_support
使っているマシンは、ICH9ですね。
https://ata.wiki.kernel.org/index.php/Hardware,_driver_status#AHCI_.28newer_Intel_ICH.2C_ULi.2C_others.29
対応済み。
具体的な手順はこのへんに書かれている。
https://raid.wiki.kernel.org/index.php/Hotplug
まずは、mdadmのバージョンが3.1.2以降でないとhotplugに対応していないのだそう。
root@redmine:~# mdadm --version mdadm - v3.1.4 - 31st August 2010
これは大丈夫。
接続されているSATAデバイスとドライブ名の対応を調べる。
まずは、ドライブの確認。
root@redmine:~# cat /sys/bus/scsi/devices/2\:0\:0\:0/model SAMSUNG HA500LJ root@redmine:~# cat /sys/bus/scsi/devices/3\:0\:0\:0/model SAMSUNG HA500LJ
このマシンは妙で、0,1が外に向いていると言ってたな。
確かに0,1がなく、2からはじまっている。
順番的には、2がsdaで、3がsdbかな?
root@redmine:~# dmesg | grep 'Attached SCSI disk' [ 4.150583] sd 2:0:0:0: [sda] Attached SCSI disk [ 4.165018] sd 3:0:0:0: [sdb] Attached SCSI disk
間違いない。
dmesgがいつでもアテになるとは限らないので、この対応を調べる方法はないかな。
これがいいかな。
root@redmine:~# ls -d /sys/bus/scsi/devices/?\:0\:0\:0/block/* /sys/bus/scsi/devices/2:0:0:0/block/sda /sys/bus/scsi/devices/3:0:0:0/block/sdb
なんかで再利用する時には、こんな感じか。
root@redmine:~# ls -d /sys/bus/scsi/devices/?\:0\:0\:0/block/* | awk 'BEGIN { FS="/"} {print $8 "\t" $6}' sda 2:0:0:0 sdb 3:0:0:0
RAIDを崩壊させる。
あんまりいい方法はない。
擬似的にやる。
https://raid.wiki.kernel.org/index.php/Detecting,_querying_and_testing
root@redmine:~# mdadm --manage --set-faulty /dev/md0 /dev/sda1 mdadm: set /dev/sda1 faulty in /dev/md0 root@redmine:~# cat /proc/mdstat Personalities : [raid1] md1 : active (auto-read-only) raid1 sda5[0] sdb5[1] 5998528 blocks [2/2] [UU] md0 : active raid1 sda1[2](F) sdb1[1] 482384832 blocks [2/1] [_U] unused devices: <none> root@redmine:~# mdadm --manage --remove /dev/md0 /dev/sda1 mdadm: hot removed /dev/sda1 from /dev/md0 root@redmine:~# cat /proc/mdstat Personalities : [raid1] md1 : active (auto-read-only) raid1 sda5[0] sdb5[1] 5998528 blocks [2/2] [UU] md0 : active raid1 sdb1[1] 482384832 blocks [2/1] [_U] unused devices: <none>
同じドライブ上にあるので、sda1も同様にする。
root@redmine:~# mdadm --manage --remove /dev/md1 /dev/sda5 mdadm: hot remove failed for /dev/sda5: Device or resource busy root@redmine:~# mdadm --manage --set-faulty /dev/md1 /dev/sda5 mdadm: set /dev/sda5 faulty in /dev/md1 root@redmine:~# mdadm --manage --remove /dev/md1 /dev/sda5 mdadm: hot removed /dev/sda5 from /dev/md1 root@redmine:~# cat /proc/mdstat Personalities : [raid1] md1 : active raid1 sdb5[1] 5998528 blocks [2/1] [_U] md0 : active raid1 sdb1[1] 482384832 blocks [2/1] [_U] unused devices: <none>
logには、こんな感じで出ている。
[ 802.508972] md: unbind<sda1> [ 802.537044] md: export_rdev(sda1) [ 897.737030] md: unbind<sda5> [ 897.765041] md: export_rdev(sda5)
ドライブを抜けるようにする。
sdaは、2:0:0:0だった。
root@redmine:~# echo 1 > /sys/class/scsi_device/2\:0\:0\:0/device/delete
logにはこのような表示が。
[ 1121.136338] sd 2:0:0:0: [sda] Synchronizing SCSI cache [ 1121.136840] sd 2:0:0:0: [sda] Stopping disk [ 1121.568061] ata3.00: disabled
root@redmine:~# ls -d /sys/bus/scsi/devices/?\:0\:0\:0/block/* | awk 'BEGIN { FS="/"} {print $8 "\t" $6}' sdb 3:0:0:0
1つしか見えなくなっている。
ドライブを抜く。
[ 1263.849204] ata4: exception Emask 0x50 SAct 0x0 SErr 0x4090800 action 0xe frozen [ 1263.849320] ata4: irq_stat 0x00400040, connection status changed [ 1263.849403] ata4: SError: { HostInt PHYRdyChg 10B8B DevExch } [ 1263.849490] ata4: hard resetting link [ 1264.572024] ata4: SATA link down (SStatus 0 SControl 300) [ 1269.572025] ata4: hard resetting link [ 1269.892025] ata4: SATA link down (SStatus 0 SControl 300) [ 1269.892037] ata4: limiting SATA link speed to 1.5 Gbps
あれ?
root@redmine:~# ls -d /sys/bus/scsi/devices/?\:0\:0\:0/block/* | awk 'BEGIN { FS="/"} {print $8 "\t" $6}' ls: cannot access /sys/bus/scsi/devices/?:0:0:0/block/*: No such file or directory
バスが死んじゃった...
あはは...
ファイルにアクセスできないな...
完全に死んだ。
抜く方間違えたかな?
むぅ。
強制電源断して、ドライブを入れて、再起動。
普通に上がってきた(^^;。
RAIDはさっきと変わらない。
root@redmine:~# ls -d /sys/bus/scsi/devices/?\:0\:0\:0/block/* | awk 'BEGIN { FS="/"} {print $8 "\t" $6}' sda 2:0:0:0 sdb 3:0:0:0
もう一度。
root@redmine:~# echo 1 > /sys/class/scsi_device/2\:0\:0\:0/device/delete root@redmine:~# ls -d /sys/bus/scsi/devices/?\:0\:0\:0/block/* | awk 'BEGIN { FS="/"} {print $8 "\t" $6}' sdb 3:0:0:0
[ 130.201419] sd 2:0:0:0: [sda] Synchronizing SCSI cache [ 130.201922] sd 2:0:0:0: [sda] Stopping disk [ 130.629828] ata3.00: disabled
今度は右のドライブを抜く。
[ 199.854500] ata3: exception Emask 0x10 SAct 0x0 SErr 0x4010000 action 0xe frozen [ 199.854616] ata3: irq_stat 0x00400040, connection status changed [ 199.854699] ata3: SError: { PHYRdyChg DevExch } [ 199.854782] ata3: hard resetting link [ 200.576023] ata3: SATA link down (SStatus 0 SControl 300) [ 200.576037] ata3: EH complete
メッセージは同じだがsdbは生きている。
root@redmine:~# ls -d /sys/bus/scsi/devices/?\:0\:0\:0/block/* | awk 'BEGIN { FS="/"} {print $8 "\t" $6}' sdb 3:0:0:0
キャッシュに入りきれないような、ディスクにアクセスする作業をしても、特に問題は出ない。
抜くのはできた。
ドライブを挿入する。
[ 662.061936] ata3: exception Emask 0x10 SAct 0x0 SErr 0x4050002 action 0xe frozen [ 662.062052] ata3: irq_stat 0x00400040, connection status changed [ 662.062135] ata3: SError: { RecovComm PHYRdyChg CommWake DevExch } [ 662.062227] ata3: hard resetting link [ 672.076018] ata3: softreset failed (device not ready) [ 672.076105] ata3: hard resetting link [ 673.300023] ata3: SATA link up 3.0 Gbps (SStatus 123 SControl 300) [ 673.320676] ata3.00: ATA-8: SAMSUNG HA500LJ, CW300-11, max UDMA7 [ 673.320683] ata3.00: 976773168 sectors, multi 0: LBA48 NCQ (depth 31/32), AA [ 673.322814] ata3.00: configured for UDMA/133 [ 673.322829] ata3: EH complete [ 673.323026] scsi 2:0:0:0: Direct-Access ATA SAMSUNG HA500LJ CW30 PQ: 0 ANSI: 5 [ 673.323734] sd 2:0:0:0: [sda] 976773168 512-byte logical blocks: (500 GB/465 GiB) [ 673.323893] sd 2:0:0:0: [sda] Write Protect is off [ 673.323901] sd 2:0:0:0: [sda] Mode Sense: 00 3a 00 00 [ 673.323968] sd 2:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA [ 673.324387] sda: sda1 sda2 < sda5 > [ 673.363166] sd 2:0:0:0: [sda] Attached SCSI disk
root@redmine:~# ls -d /sys/bus/scsi/devices/?\:0\:0\:0/block/* | awk 'BEGIN { FS="/"} {print $8 "\t" $6}' sda 2:0:0:0 sdb 3:0:0:0
またsdaとして認識している。
このへん、どこでドライブ名がフラつかないようにしているんだろう。
問題なくアクセスできる。
root@redmine:~# fdisk -l /dev/sda Disk /dev/sda: 500.1 GB, 500107862016 bytes 255 heads, 63 sectors/track, 60801 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x0000f5f2 Device Boot Start End Blocks Id System /dev/sda1 1 60055 482384896 fd Linux raid autodetect /dev/sda2 60055 60802 5998593 5 Extended /dev/sda5 60055 60802 5998592 fd Linux raid autodetect
バスでデバイスを再スキャンさせる手順は不要のようだ。
root@redmine:~# cat /sys/bus/scsi/devices/2\:0\:0\:0/state running
/sys/bus/scsi/devices/2\:0\:0\:0/rescan なんかは、特にさわらなくていいのかな。
リビルドする。
パーティション構成などは、そのままなので、リビルドだけ。
小さいほうから。
root@redmine:~# mdadm --manage --add /dev/md1 /dev/sda5 mdadm: re-added /dev/sda5 root@redmine:~# cat /proc/mdstat Personalities : [raid1] md1 : active raid1 sda5[2] sdb5[1] 5998528 blocks [2/1] [_U] [=>...................] recovery = 8.1% (490496/5998528) finish=2.2min speed=40874K/sec md0 : active raid1 sdb1[1] 482384832 blocks [2/1] [_U] unused devices: <none>
ちょっと遅いので、リビルドのスピードアップをする。
root@redmine:~# cat /proc/sys/dev/raid/speed_limit_max 200000 root@redmine:~# cat /proc/sys/dev/raid/speed_limit_min 1000
45768K/secしか出てないから、maxのほうは足りているのじゃないかな。
下限のほうを上げるか。
root@redmine:~# echo "200000" > /proc/sys/dev/raid/speed_limit_min
md1 : active raid1 sda5[2] sdb5[1] 5998528 blocks [2/1] [_U] [==============>......] recovery = 74.5% (4470400/5998528) finish=0.6min speed=40546K/sec
あまり変化はない... orz
ビルド終わり。
次は大きいほう。
root@redmine:~# mdadm --manage --add /dev/md0 /dev/sda1 mdadm: re-added /dev/sda1
speed=84246K/secか。
終了予想が、100分くらいというのは変わらない。
mdadmに、growなんてオプションもできたのね...
昔はなかったズラ。
あとでfsも伸ばさないといけないのはめんどくさいけど。