みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

sambaについて質問です。

SambaはLinuxやUnixマシンをWindowsのファイルサーバーにするソフトウェアである。

ということはわかるのですが。

WindowsのファイルシステムはNFTS、Linuxのファイルシステムはext4ですよね。

そこで、質問です。

(1)パソコンが2台あって、片方はWin7、もう一方はLinuxマシンだとして、この場合、Win7の方でエクセルとかワードとかのWindowsのアプリで作成したファイルをファイルシステムの異なるLinuxマシンのハードディスクに保管して、それをWin7のマシンから問題なく読み取って、内容を変えて、また保存しておくということが可能なのでしょうか。

ファイルシステムが異なるのに問題はないのでしょうか。

Windowsのアプリで作成したファイルなら、何でもLinuxの方に保管しておいて、読み取り、上書き、保存ができるのですか。

(2)同様に、Windowsマシンの方で作成したり、ネットから収集した、ISOの動画ファイルやJPEGの写真のファイルもLinuxマシンの方に移動またはコピーして、保管しておいて、Windowsの方からVLC Media Playerを使って見たりすることができるのですか。

疑問に思いましたので質問しました。

よろしくお願いします。

投稿日時 - 2013-11-14 01:15:42

QNo.8346614

暇なときに回答ください

質問者が選んだベストアンサー

(1)、(2)ともにできますが、それをできるようにするのがOSやsambaサーバーの仕事です。

> WindowsのファイルシステムはNFTS、Linuxのファイルシステムはext4ですよね。

ファイルシステムというのはハードディスク等にどのようにファイルを記録しておくかを決めたルールとその実装です。OSの仕事はファイルシステムにかかわらずそこに統一的な窓口を与えることです。

WindowsではNTFSだけではなく、FATも使えますし、Linuxでもext4だけでなくext3、xfs、raiserfs、ntfs、fatなど多くのファイルシステムが使えます。しかし、OSがその違いを吸収しているので、どのファイルシステムであっても、ユーザーはそれを意識することはありません。APIやシステムコールなどOSごとに決まった手順でファイルの読み書きを司令すれば、ファイルシステムが何であるかを気にせずに読み書きができます。

ざっくりとした流れはこんな感じです。
1. Windows上であるアプリケーションがLinuxで構築したファイルサーバーのファイルを開く場合、まずそのアプリケーションがWindows OSにファイルを開く命令を送ります。
2. Windows OSはCIFSというプロトコルでLinux上で動くsambaサーバーに問い合わせが行きます。
3. sambaサーバーはLinux OSにファイルを開く命令を送り、ファイルを得ます。
4. sambaサーバーはそれをCIFSでの応答メッセージに変換して返します。
5. Windows OSは返答をWindowsのファイルを開く命令の返答に書き換えてアプリケーションに返します。
6. アプリケーションはファイルを開けます。

投稿日時 - 2013-11-14 05:34:39

補足

詳細な説明ありがとうございました。

ネットワークではファイルシステムは関係ないんですね。

投稿日時 - 2013-11-14 14:09:11

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(6)

ANo.6

(1)問題ありません
(2)問題ありません

私も自宅でUbuntu(Linux)でファイルサーバを作り複数のWidowsOSの
PCからアクセスして動画ファイルやISOファイルも問題なく見れます。

市販されているNASのほとんどはLinuxOSですよ。

投稿日時 - 2013-11-14 09:11:55

補足

ありがとうございます。

NASを買うより、自作の安いパソコンでLinuxでsambaを使ってファイルサーバーにした方がいいですよね。

投稿日時 - 2013-11-14 14:15:25

ANo.5

言い換えれば、Sambaというか、その基礎にあるSMBやCIFSが
実質的なファイルシステムの仕様と考えることができます。

SMBが生まれたのは、MS-DOSやOS/2の時代で
当時は、FAT(FAT32どころかVFATも無い)時代でしたが
今はNTFSになっていても、普通に使われているでしょ?

NTFSに対応していないWindows95,98,Meでも
WindowsServerにアクセスできたことは有名だと思います。


また、QNAPなどからIO DATAやBuffaloなどまで
低価格のNAS製品のほとんどが、組み込みLinuxによって実現されています。


デジタル家電でも、組み込みOSには大容量HDD運用の実績があまり無かったので
組み込みLinuxを採用した事例が非常に多くなっています。

これらは、ext4よりもむしろ、大容量ファイルに有利とされる
シリコングラフィックス社がIRIXからLinuxへと寄付したXFSが多用されているようです。


ですから、NAS製品などでの注意点などの記事は、ある程度共通して
Linuxによるファイルサーバーにも適用される場合があります。

また、現在ではSMB2.0が一般化していますが、NAS製品の多くはSMB1.0だと思います。

WindowsXPがSMB2.0非対応のまま居座ってきたために
SMB2.0対応への欲求は大きなものになっていないのか
SambaはSMB2.0には対応したものの、SMB2.0を謳う低価格NAS製品は見たことがありません。

企業向けのWindowsStorageServer搭載の高級NASは、SMB2.0,2.1を誇っています。
これはSMB2.0が大勢で同時利用するような場合に、効果が大きいことも関係するのでしょう。


なお、WindowsVistaがSMB2.0対応で、これによって小さいファイルを複数
同時に扱うような場合に、SMB1.0よりも性能が向上するとされています。

Windows7ではSMB2.1となっていますが、Sambaは2.1には対応していませんし
SMB2.0機能も、運用実績が多いとは言えないのか
NAS製品でSMB2.0を掲げないのは、実際にそれを有効にしていないからじゃないかと思います。
(実情は外部から見てもわかりにくいので、よくわかりません)


まぁ、自分で管理する能力があれば、低価格NAS製品でも活用されている
LinuxのmdドライバーによるソフトウェアRAID機能は、ハードウェア依存が無く
手軽な、大容量ファイルサーバー構築に便利です。

Atom搭載のM/BでRAID1のファイルサーバーを作った場合
1TBのRAID1ボリュームを用意しても、5万くらいでできると思います。

WSS搭載NASならRAID1モデルで10万円以上ですが
Linuxファイルサーバーなら、RAID10やRAID5にしてもまだ安上がりです。

またNAS製品で怖いHDD以外の故障に対しては、自作PCサーバーが有利ですし
mdドライバーなら、まったく違うM/Bに交換しても、そのまま稼働できますし
4port SATAカードの1portが壊れた際に、オンボードSATAportと混在で
数ヶ月RAID5を使い続けたこともあります。柔軟にして安定しています。


反面、自分でファイルサーバーを組むと
本来の性能を発揮するための設定などを、すべて自分でやる必要があります。

うちは、WindowsやMacOSXを使わないので
Sambaの設定を突き詰めるのは、めんどうくさいだけなのでほっといていますが
Linux to LinuxでSambaでファイル転送してみると、あまり速くありません。

まぁ、スマフォなどのために動かしているだけなので、ほっとらかしです。


Linux to Linuxの場合は、nfsを使っています。
nfsのほうが圧倒的に速いんですよね。
自分ひとりしか使わないので、まぁそれでいいかなぁ…と。

投稿日時 - 2013-11-14 06:48:40

補足

ありがとうございました。

個人が自宅でネットワークしていてLinuxをサーバーとして使う場合、ファイルサーバーくらいしか思いつかないんですよね。

その場合、LinuxならOSはタダだし、そこにWindowsの方のファイルや動画ファイルを保存しておいて、さらにファイルサーバーとして使えればいいと思っているしだいです。

投稿日時 - 2013-11-14 14:13:30

ANo.3

ぶっちゃけた話をすれば, その辺の「ファイルシステムの変換」をやってくれるのがファイルサーバ (というプロセス).

samba だったら Unix のファイルシステム (UFS とか ext4 とか) を CIFS に変換している (と思っていい).

投稿日時 - 2013-11-14 02:04:19

補足

ありがとうございました。

なるほどわかりました。

投稿日時 - 2013-11-14 03:09:12

ANo.2

Windows同士でも、ネットワークドライブ接続はFATとかNTFSとか関係なく、SMB(CIFS)というネットワーク接続プロトコルで通信します。ウェブがHTTPプロトコルを使っているのと同じような関係。
https://ja.wikipedia.org/wiki/Server_Message_Block

CIFSプロトコルで通信している相手が、どんなOSでどんなファイルシステムかは関係ありません。CIFSの規約にだけ従っていれば良い。

WindowsのPCのウェブブラウザからHTTPプロトコルで通信する相手がLinuxサーバーでもWIndowsサーバーでもいいのと同じ。

投稿日時 - 2013-11-14 02:03:44

補足

ありがとうございました。

>WindowsのPCのウェブブラウザからHTTPプロトコルで通信する相手がLinuxサーバーでもWIndowsサーバーでもいいのと同じ。

それも、そうですよね。
それでインターネットができているんですから。

投稿日時 - 2013-11-14 03:08:39

ANo.1

ネットワーク経由になった時点で「ファイルシステム」は見えません。
FATだろうとNTFSだろうとXFSだろうと一緒です。

投稿日時 - 2013-11-14 01:21:57

補足

ありがとうございました。

関係ないんですね。

投稿日時 - 2013-11-14 03:06:19

あなたにオススメの質問