質問
私はNFSやCIFSを使用してデータベースを使用するためRAWデバイスをエクスポートする方法を教えてください。
解決
短い答え:!あなたすることはできません。
ロング答えます:
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デバイスにしようとした場合凶悪ロックの問題があることに注意してください - あなたは、分散操作のサポートを持っている必要がありますし、あなたにすべての方法をロックしたいですデータベースます。
あなたがより高いレベルで何をしたいのか説明している場合は、おそらくより多くの助けになるだろう...
他のヒント
私は、Oracleのインストールのためのいくつかの難解な要件を満たすためにこれをやって覚えています。私はこれを実現するために方法を考え出したが、いかなる状況の下で、私は実際にこれを実装したいと思うことに気づきました。
あなたの悪い選択をするような場合には、言った:
あなたは最終的にrawデバイスとして公開するつもりだという空のファイルを作成します。
dd if=/dev/zero of=/netapp/ocr/file bs=8k count=50000
rawデバイスを作成します
mknod /dev/raw1 c 162 1
は、使用したいファイルを指していることをループバックデバイスを作成します。
losetup /dev/loop1 /netapp/ocr/file
バインドループバックデバイスにRAWデバイスます:
raw /dev/raw/raw1 /dev/loop1
RAWデバイスを確認することができます。プロデュース出力が正しくバインドされています:
raw -qa