Comparison of NFS vs. others
From Linux NFS
(Difference between revisions)
m (acknowledge edits on top of the original e-mail) |
|||
(17 intermediate revisions not shown) | |||
Line 1: | Line 1: | ||
- | Here is a description comparing NFS and other similar technologies, | + | Here is a description comparing NFS and other similar technologies, started at this page: |
- | [http:// | + | [http://lists.samba.org/archive/samba-technical/2001-December/017918.html] |
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | + | ==CIFS== | |
- | + | ===Strengths=== | |
- | + | # Huge installed client base (not just Windows), | |
- | + | # good, open source server implementation available (Samba!), | |
- | + | # token management (oplock) and referral ("dfs") semantics are a good compromise between usefulness and simplicity | |
- | + | # the key part of the filesystem protocol (mostly) documented, rich file open semantics map well to Windows and related OSs, | |
- | + | # kerberos security integration and RPC integration | |
- | + | # broader in scope (print, ACL, browsing etc.) than other filesystem protocols | |
- | + | # optional PDU signing above the RPC allowing maximal flexibility | |
+ | # Unicode | ||
+ | # high performance | ||
+ | # huge amount of loosely related management/administrative function available via various DCE RPC calls | ||
+ | # efficient PDUs (small frame headers, less wasted bandwidth) | ||
- | + | ===Weaknesses=== | |
- | + | # the extended protocol poorly documented, | |
- | + | # not an IETF standard | |
- | + | # elements of older protocol dialects still needed adding to complexity of implementations | |
- | + | # protocol needs addition of lock migration/recovery and support for new transport mechanisms (e.g. RDMA) | |
- | + | # ACL support - although useful is hard to understand | |
- | + | # (item j above) management/admistrative calls are proprietary | |
- | + | ==NFSv3== | |
- | + | ===Strengths=== | |
- | + | # relatively simple to implement | |
- | + | # maps well to Unix VFS semantics (except for caching) | |
- | + | # protocol easy to understand by stripping file protocol to its minimum | |
- | + | # leverages ONC-RPC's authentication model for free, and good, security | |
- | + | # many non-UNIX implementations (Windows, OS/400, ...) | |
- | + | # Open Group standard, see http://www.opengroup.org/bookstore/catalog/c702.htm | |
- | + | # test suite available at http://www.opengroup.org/testing/testsuites/vsx4nfsov.htm | |
- | + | # SPEC server performance benchmark available at http://www.spec.org/benchmarks.html#nfs | |
- | + | ||
- | + | ||
- | + | ||
+ | ===Weaknesses=== | ||
+ | # statelessness of core protocol causes caching problems | ||
+ | # few Windows NFS clients installed | ||
+ | # Security based on Unix Userids - no security if these are spoofable | ||
+ | # maps poorly to Windows operating system API | ||
+ | # not an IETF standard (informational description published by Sun and NetApp as an informational RFC) | ||
+ | # relatively weak open source server implementation (at least compared to Samba and AFS) has scalability problems | ||
+ | # implementing many protocols needed to get CIFS equivalent e.g. lock manager, mount and port mapping protocol, SunRPC, NIS, ONC extensions (some proprietary) | ||
+ | # WebNFS enhancements partially implemented adding to some confusion | ||
+ | # No support for Unicode, UTF/8, UCS-4, etc. | ||
- | NFSv4 | + | ==NFSv4== |
- | Strengths | + | ===Strengths=== |
- | + | # IETF standards track specification | |
- | + | # improved recovery (lock migration) | |
- | + | # supports Windows file sharing semantics better than NFS v3 did | |
- | + | # safe file caching | |
+ | # Mandates strong authentication and integrity via Kerberos and SPKM-3 | ||
+ | # Supports rich access control model via Windows 2000-like Access Control Lists (ACLs) | ||
+ | # Exports a pre-existing filesystem to the network; no data migration is necessary to enable or disable NFS | ||
- | Weaknesses | + | ===Weaknesses=== |
- | + | # still relatively "new"--Linux and other implementations are maturing but not widely deployed yet. | |
- | + | # perceived lack of Microsoft interest | |
- | + | # too late? | |
- | + | # complex | |
- | + | ||
- | + | ||
- | + | ||
- | DAFS | + | ==DAFS== |
- | Strengths | + | ===Strengths=== |
- | + | # Addition of RDMA to NFS style protocol, (probable) high performance in clusters and server farms. | |
- | in clusters and server farms. | + | # (see NFS v4) |
- | + | ||
- | Weaknesses | + | ===Weaknesses=== |
- | + | # unproven, lack of client support, perceived competition with NFS v4 | |
- | + | # (see NFS v4) | |
- | HTTP/WebDAV | + | ==HTTP/WebDAV== |
- | Strengths | + | ===Strengths=== |
- | + | # official standard | |
- | + | # broadly implemented | |
- | + | # well suited to internet | |
- | + | # active standardization work - protocol will improve | |
- | Weaknesses | + | ===Weaknesses=== |
- | + | # frame headers are large (high % of frame size is wasted) | |
- | + | # security integration not optimal | |
- | + | # slow | |
- | + | # not a complete match to either Linux VFS or Win2K IFS API requirements | |
- | requirements | + | |
- | NCP(Netware) | + | ==NCP(Netware)== |
- | Strengths | + | ===Strengths=== |
- | + | # NDS integration | |
- | + | # good match for Windows | |
- | + | # good installed base on older systems | |
- | Weaknesses | + | ===Weaknesses=== |
- | + | # Proprietary | |
- | + | # poorly documented | |
- | + | # not a standard | |
- | + | # complex, with lots of dialects | |
- | + | # future clients questionable | |
- | AFS | + | ==AFS== |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | (DFS is related to AFS but deprecated for various reasons) | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
+ | ===Strengths=== | ||
+ | # Kerberos 5 integration | ||
+ | # abstraction layer between namespace and physical location, eases maintanance expense | ||
+ | # excellent Linux and Windows- Client support | ||
+ | # aggressive client side caching with proactive cache-invalidation | ||
- | + | ===Weakness=== | |
- | + | # difficult to setup | |
- | + | # complex, big linux kernel module for client | |
+ | # Implements its own storage layer over an extXfs filesystem; data must be migrated in to be usable with OpenAFS, and migrated out to be usable without. | ||
- | + | ==Coda== | |
- | + | ===Strengths=== | |
- | + | # disconnected support | |
- | + | ||
- | + | ===Weaknesses=== | |
+ | # Lack of commercial implementations | ||
+ | # lack of Windows clients | ||
+ | # not well understood | ||
+ | |||
+ | ==Lustre== | ||
+ | (help?) | ||
+ | |||
+ | ===Strengths=== | ||
+ | # Fully distributed. | ||
+ | # Excellent performance. | ||
+ | |||
+ | ===Weaknesses=== | ||
+ | # Poor community interaction. | ||
+ | # lack of clients. | ||
+ | |||
+ | ==GFS== | ||
+ | (help?) | ||
+ | |||
+ | ===Strengths=== | ||
+ | # Fully distributed. | ||
+ | |||
+ | ===Weaknesses=== | ||
+ | # Needs heavy-duty, not-standardized cluster management system. | ||
+ | # Linux-only (?) | ||
+ | |||
+ | ==GPFS== | ||
+ | |||
+ | ===Strengths=== | ||
+ | # Highly Scalable | ||
+ | # Data Replication | ||
+ | # Policy Based Storage Management | ||
+ | # Good performance. | ||
+ | # Stable, well-tested. | ||
+ | |||
+ | ===Weaknesses=== | ||
+ | # Commercial-only. |
Latest revision as of 21:36, 23 June 2010
Here is a description comparing NFS and other similar technologies, started at this page: [1]
Contents |
CIFS
Strengths
- Huge installed client base (not just Windows),
- good, open source server implementation available (Samba!),
- token management (oplock) and referral ("dfs") semantics are a good compromise between usefulness and simplicity
- the key part of the filesystem protocol (mostly) documented, rich file open semantics map well to Windows and related OSs,
- kerberos security integration and RPC integration
- broader in scope (print, ACL, browsing etc.) than other filesystem protocols
- optional PDU signing above the RPC allowing maximal flexibility
- Unicode
- high performance
- huge amount of loosely related management/administrative function available via various DCE RPC calls
- efficient PDUs (small frame headers, less wasted bandwidth)
Weaknesses
- the extended protocol poorly documented,
- not an IETF standard
- elements of older protocol dialects still needed adding to complexity of implementations
- protocol needs addition of lock migration/recovery and support for new transport mechanisms (e.g. RDMA)
- ACL support - although useful is hard to understand
- (item j above) management/admistrative calls are proprietary
NFSv3
Strengths
- relatively simple to implement
- maps well to Unix VFS semantics (except for caching)
- protocol easy to understand by stripping file protocol to its minimum
- leverages ONC-RPC's authentication model for free, and good, security
- many non-UNIX implementations (Windows, OS/400, ...)
- Open Group standard, see http://www.opengroup.org/bookstore/catalog/c702.htm
- test suite available at http://www.opengroup.org/testing/testsuites/vsx4nfsov.htm
- SPEC server performance benchmark available at http://www.spec.org/benchmarks.html#nfs
Weaknesses
- statelessness of core protocol causes caching problems
- few Windows NFS clients installed
- Security based on Unix Userids - no security if these are spoofable
- maps poorly to Windows operating system API
- not an IETF standard (informational description published by Sun and NetApp as an informational RFC)
- relatively weak open source server implementation (at least compared to Samba and AFS) has scalability problems
- implementing many protocols needed to get CIFS equivalent e.g. lock manager, mount and port mapping protocol, SunRPC, NIS, ONC extensions (some proprietary)
- WebNFS enhancements partially implemented adding to some confusion
- No support for Unicode, UTF/8, UCS-4, etc.
NFSv4
Strengths
- IETF standards track specification
- improved recovery (lock migration)
- supports Windows file sharing semantics better than NFS v3 did
- safe file caching
- Mandates strong authentication and integrity via Kerberos and SPKM-3
- Supports rich access control model via Windows 2000-like Access Control Lists (ACLs)
- Exports a pre-existing filesystem to the network; no data migration is necessary to enable or disable NFS
Weaknesses
- still relatively "new"--Linux and other implementations are maturing but not widely deployed yet.
- perceived lack of Microsoft interest
- too late?
- complex
DAFS
Strengths
- Addition of RDMA to NFS style protocol, (probable) high performance in clusters and server farms.
- (see NFS v4)
Weaknesses
- unproven, lack of client support, perceived competition with NFS v4
- (see NFS v4)
HTTP/WebDAV
Strengths
- official standard
- broadly implemented
- well suited to internet
- active standardization work - protocol will improve
Weaknesses
- frame headers are large (high % of frame size is wasted)
- security integration not optimal
- slow
- not a complete match to either Linux VFS or Win2K IFS API requirements
NCP(Netware)
Strengths
- NDS integration
- good match for Windows
- good installed base on older systems
Weaknesses
- Proprietary
- poorly documented
- not a standard
- complex, with lots of dialects
- future clients questionable
AFS
(DFS is related to AFS but deprecated for various reasons)
Strengths
- Kerberos 5 integration
- abstraction layer between namespace and physical location, eases maintanance expense
- excellent Linux and Windows- Client support
- aggressive client side caching with proactive cache-invalidation
Weakness
- difficult to setup
- complex, big linux kernel module for client
- Implements its own storage layer over an extXfs filesystem; data must be migrated in to be usable with OpenAFS, and migrated out to be usable without.
Coda
Strengths
- disconnected support
Weaknesses
- Lack of commercial implementations
- lack of Windows clients
- not well understood
Lustre
(help?)
Strengths
- Fully distributed.
- Excellent performance.
Weaknesses
- Poor community interaction.
- lack of clients.
GFS
(help?)
Strengths
- Fully distributed.
Weaknesses
- Needs heavy-duty, not-standardized cluster management system.
- Linux-only (?)
GPFS
Strengths
- Highly Scalable
- Data Replication
- Policy Based Storage Management
- Good performance.
- Stable, well-tested.
Weaknesses
- Commercial-only.