NFSまたはCIFSを使用してデータベースで使用するためにRAWデバイスをエクスポートするにはどうすればよいですか?
2 に答える
Oracleインストールの難解な要件を満たすためにこれを行ったことを覚えています。私はこれを実現する方法を考え出しましたが、いかなる状況でも実際にこれを実装したいとは思わないことに気づきました。
そうは言っても、あなたが悪い選択をするのが好きなら:
最終的にrawデバイスとして公開する空のファイルを作成します。
dd if=/dev/zero of=/netapp/ocr/file bs=8k count=50000
生のデバイスを作成します。
mknod /dev/raw1 c 162 1
使用するファイルを指すループバックデバイスを作成します。
losetup /dev/loop1 /netapp/ocr/file
rawデバイスをループバックデバイスにバインドします。
raw /dev/raw/raw1 /dev/loop1
rawデバイスが正しくバインドされていることを確認できる出力を生成します。
raw -qa
簡単な答え:できません!
長い答え:
NFSとCIFSはどちらも、デバイスではなくファイルを処理するように設計されています。
NFSを使用してUnixでデバイスノードをエクスポートすると、クライアントのカーネルに関する限り、実際にはクライアント上の(おそらく存在しない)デバイスが参照されます。NFSは、同時実行(DBトランザクションを含む)を大きな問題にするロックの問題でも有名です。NFS上のACIDは、通常、ノーノーです。
誤解されているかもしれませんが、CIFSでは特別なファイルのサポートも制限されていると思います。
おそらく、NBD(ネットワークブロックデバイス)、DRBD(分散複製ブロックデバイス)、さらにはiSCSIのようなものを探していますか?
http://en.wikipedia.org/wiki/ISCSI
http://en.wikipedia.org/wiki/Network_block_device
http://en.wikipedia.org/wiki/DRBD
rawデバイスを複数のノードで共有しようとすると、ロックの問題が発生する可能性があることに注意してください。分散操作とデータベースまでのロックをサポートする必要があります。
より高いレベルで何をしたいのかを説明すれば、おそらくもっと助けが得られるでしょう...