IBM - Samba, CIFS and Linux NFS.pdf

(3166 KB) Pobierz
31484481 UNPDF
Samba, CIFS and Linux Network
Filesystems
Steve French
Senior Engineer
IBM Linux Technology Center
sfrench@us.ibm.com
31484481.177.png 31484481.188.png 31484481.199.png 31484481.210.png 31484481.001.png 31484481.012.png 31484481.023.png 31484481.034.png 31484481.045.png 31484481.056.png 31484481.067.png 31484481.078.png 31484481.089.png 31484481.100.png 31484481.111.png 31484481.122.png 31484481.133.png 31484481.140.png 31484481.141.png 31484481.142.png 31484481.143.png 31484481.144.png 31484481.145.png 31484481.146.png 31484481.147.png 31484481.148.png 31484481.149.png 31484481.150.png 31484481.151.png 31484481.152.png 31484481.153.png 31484481.154.png 31484481.155.png 31484481.156.png 31484481.157.png 31484481.158.png 31484481.159.png 31484481.160.png 31484481.161.png 31484481.162.png 31484481.163.png 31484481.164.png 31484481.165.png 31484481.166.png 31484481.167.png 31484481.168.png 31484481.169.png 31484481.170.png 31484481.171.png 31484481.172.png 31484481.173.png 31484481.174.png 31484481.175.png 31484481.176.png 31484481.178.png 31484481.179.png 31484481.180.png 31484481.181.png 31484481.182.png 31484481.183.png 31484481.184.png
VFS
“The Virtual File System (otherwise known as the
Virtual Filesystem Switch) is the software layer in the
kernel that provides the filesystem interface to
userspace programmes. It also provides an
abstraction within the kernel which allows different
filesystem implementations to co-exist.”
Richard Gooch in documentation/filesystems/vfs.txt
VFS is quite different from the very complex, rich “IFS” interface that
Windows NT, 2000 and XP provide. Many Unixes support a VFS like
interface to filesystem driver software
31484481.185.png 31484481.186.png 31484481.187.png 31484481.189.png 31484481.190.png 31484481.191.png 31484481.192.png 31484481.193.png 31484481.194.png 31484481.195.png 31484481.196.png 31484481.197.png 31484481.198.png 31484481.200.png 31484481.201.png 31484481.202.png 31484481.203.png 31484481.204.png 31484481.205.png 31484481.206.png 31484481.207.png 31484481.208.png 31484481.209.png 31484481.211.png 31484481.212.png 31484481.213.png 31484481.214.png 31484481.215.png 31484481.216.png 31484481.217.png 31484481.218.png 31484481.219.png 31484481.220.png 31484481.002.png 31484481.003.png 31484481.004.png 31484481.005.png 31484481.006.png 31484481.007.png 31484481.008.png
Linux Filesystems
40 Filesystems in 2.4.18, mostly local
2 Added by 2.5.7: driverfs and IBM’s JFS (and
expand_fs is gone)
RAMFS in Linux 2.4 is a good example of a minimal,
cleanly written filesystem
Network filesystems unfortunately are much more
complicated for Linux see include/linux/fs.h to see a
complete list of the Linux filesystems
NFS, NCPFS, SMBFS, Coda, Intermezzo
I am writing a CIFS VFS (smbfs overlaps slightly)
AFS and GFS (not in the main tree) are also important
31484481.009.png 31484481.010.png 31484481.011.png 31484481.013.png 31484481.014.png 31484481.015.png 31484481.016.png 31484481.017.png 31484481.018.png 31484481.019.png 31484481.020.png 31484481.021.png 31484481.022.png 31484481.024.png 31484481.025.png 31484481.026.png 31484481.027.png 31484481.028.png 31484481.029.png 31484481.030.png 31484481.031.png 31484481.032.png 31484481.033.png 31484481.035.png 31484481.036.png 31484481.037.png 31484481.038.png 31484481.039.png 31484481.040.png 31484481.041.png 31484481.042.png 31484481.043.png 31484481.044.png 31484481.046.png 31484481.047.png 31484481.048.png 31484481.049.png 31484481.050.png 31484481.051.png 31484481.052.png
Filesystems are still critical
In this Internet era
… despite databases
… despite new storage paradigms
“Traditional” Filesystems are still critical and are being actively
developed, enhanced improved
NAS (and hybrid NAS/SAN) products and management software is
increasing in importance
Storage (especially network storage requirements) is growing faster
than processor requirements
The goal: make network storage so reliable, fast, secure, and easy to operate
that users hardly ever think about it. (the industry has a long way to go,
fortunately for future grads)
31484481.053.png 31484481.054.png 31484481.055.png 31484481.057.png 31484481.058.png 31484481.059.png 31484481.060.png 31484481.061.png 31484481.062.png 31484481.063.png 31484481.064.png 31484481.065.png 31484481.066.png 31484481.068.png 31484481.069.png 31484481.070.png 31484481.071.png 31484481.072.png 31484481.073.png 31484481.074.png 31484481.075.png 31484481.076.png 31484481.077.png 31484481.079.png 31484481.080.png 31484481.081.png 31484481.082.png 31484481.083.png 31484481.084.png 31484481.085.png 31484481.086.png 31484481.087.png 31484481.088.png 31484481.090.png 31484481.091.png 31484481.092.png 31484481.093.png 31484481.094.png 31484481.095.png 31484481.096.png
… and they keep changing. Note:
Linux 2.5 Filesystem changes
See Documentation/filesystems/porting for a
complete list
BKL (Big Kernel Lock) taken in fewer places for
improved performance
Read_super (called eventually from do_mount)
is gone replaced by get_sb (big help for network
filesystems that do not want mount helpers)
Filesystem declaration changed and a few flags
New inode allocation/destroy routines
Seven new filesystem helper routines
31484481.097.png 31484481.098.png 31484481.099.png 31484481.101.png 31484481.102.png 31484481.103.png 31484481.104.png 31484481.105.png 31484481.106.png 31484481.107.png 31484481.108.png 31484481.109.png 31484481.110.png 31484481.112.png 31484481.113.png 31484481.114.png 31484481.115.png 31484481.116.png 31484481.117.png 31484481.118.png 31484481.119.png 31484481.120.png 31484481.121.png 31484481.123.png 31484481.124.png 31484481.125.png 31484481.126.png 31484481.127.png 31484481.128.png 31484481.129.png 31484481.130.png 31484481.131.png 31484481.132.png 31484481.134.png 31484481.135.png 31484481.136.png 31484481.137.png 31484481.138.png 31484481.139.png
 
Zgłoś jeśli naruszono regulamin