Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Andrew File System
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{Short description|File system for computers}}{{Distinguish||text=the [[Apple File System]], also abbreviated AFS}} The '''Andrew File System''' ('''AFS''') is a [[distributed file system]] which uses a set of trusted servers to present a homogeneous, location-transparent file name space to all the client workstations. It was developed by [[Carnegie Mellon University]] as part of the [[Andrew Project]].<ref>[http://www.cmu.edu/corporate/news/2007/features/andrew/what_is_andrew.shtml What is Andrew] {{webarchive |url=https://web.archive.org/web/20110909232809/http://www.cmu.edu/corporate/news/2007/features/andrew/what_is_andrew.shtml |date=September 9, 2011 }} - part of CMU's official site chronicling the history of the [[Andrew Project]].</ref> Originally named "Vice",<ref name="garfinkel19890506">{{cite news | url=http://simson.net/clips/1989/1989.TechRev.Athena.pdf | title=Ripples Across the Academic Market | work=Technology Review | date=May–June 1989 | access-date=25 January 2016 | author=Garfinkel, Simson L. | author-link=Simson Garfinkel | pages=9–13}}</ref> "Andrew" refers to [[Andrew Carnegie]] and [[Andrew W. Mellon|Andrew Mellon]]. Its primary use is in [[distributed computing]]. == Features == AFS<ref>{{cite journal|author =Howard, J.H.|author2 =Kazar, M.L.|author3 =Nichols, S.G.|author4 =Nichols, D.A.|author5 =Satyanarayanan, M.|author6 =Sidebotham, R.N.|author7 =West, M.J.|name-list-style =amp|title=Scale and Performance in a Distributed File System|journal=ACM Transactions on Computer Systems|volume=6|issue=1|date=February 1988|pages=51–81|doi=10.1145/35037.35059|citeseerx =10.1.1.71.5072|s2cid =52848606}}</ref> has several benefits over traditional networked [[file system]]s, particularly in the areas of security and scalability. One enterprise AFS deployment at [[Morgan Stanley]] exceeds 25,000 clients.<ref>{{cite web|url=http://www-conf.slac.stanford.edu/AFSBestPractices/Slides/MorganStanley.pdf|title=When Your Business Depends On It — The Evolution of a Global File System for a Global Enterprise|first=Phillip|last=Moore|date=2004|access-date=2009-06-18|archive-date=2017-07-09|archive-url=https://web.archive.org/web/20170709042700/http://www-conf.slac.stanford.edu/AFSBestPractices/Slides/MorganStanley.pdf|url-status=dead}}</ref> AFS uses [[Kerberos protocol|Kerberos]] for authentication, and implements [[access control list]]s on directories for users and groups. Each client caches files on the local filesystem for increased speed on subsequent requests for the same file. This also allows limited filesystem access in the event of a [[crash (computing)|server crash]] or a [[network outage]]. AFS uses the [[weak consistency]] model.<ref>{{Citation |publisher = Amazon |author = Yaniv Pessach |title = Distributed Storage |edition = Distributed Storage: Concepts, Algorithms, and Implementations |date = 2013 |ol = 25423189M }}</ref> Read and write operations on an open file are directed only to the locally cached copy. When a modified file is closed, the changed portions are copied back to the file server. Cache consistency is maintained by [[Callback (computer science)|callback]] mechanism. When a file is cached, the server makes a note of this and promises to inform the client if the file is updated by someone else. Callbacks are discarded and must be re-established after any client, server, or network failure, including a timeout. Re-establishing a callback involves a status check and does not require re-reading the file itself. A consequence of the [[file locking]] strategy is that AFS does not support large shared databases or record updating within files shared between client systems. This was a deliberate design decision based on the perceived needs of the university computing environment. For example, in the original email system for the Andrew Project, the Andrew Message System, a single file per message is used, like [[maildir]], rather than a single file per mailbox, like [[mbox]]. See [[file locking#Buffered I/O problems|AFS and buffered I/O Problems]] for handling shared databases. A significant feature of AFS is the [[Volume (computing)|volume]], a tree of files, sub-directories and AFS [[mount (computing)|mountpoints]] (links to other AFS volumes). Volumes are created by administrators and linked at a specific named path in an AFS cell. Once created, users of the filesystem may create directories and files as usual without concern for the physical location of the volume. A volume may have a [[Disk quota|quota]] assigned to it in order to limit the amount of space consumed. As needed, AFS administrators can move that volume to another server and disk location without the need to notify users; the operation can even occur while files in that volume are being used. AFS volumes can be replicated to read-only cloned copies. When accessing files in a read-only volume, a client system will retrieve data from a particular read-only copy. If at some point, that copy becomes unavailable, clients will look for any of the remaining copies. Again, users of that data are unaware of the location of the read-only copy; administrators can create and relocate such copies as needed. The AFS command suite guarantees that all read-only volumes contain exact copies of the original read-write volume at the time the read-only copy was created. The file name space on an Andrew workstation is partitioned into a ''shared'' and ''local'' name space. The shared name space (usually mounted as /afs on the Unix filesystem) is identical on all workstations. The local name space is unique to each workstation. It only contains temporary files needed for workstation initialization and symbolic links to files in the shared name space. The Andrew File System heavily influenced Version 4 of [[Sun Microsystems]]' popular [[Network File System (protocol)|Network File System]] (NFS). Additionally, a variant of AFS, the [[DCE Distributed File System]] (DFS) was adopted by the [[Open Software Foundation]] in 1989 as part of their [[Distributed Computing Environment]]. Finally AFS (version two) was the predecessor of the [[Coda (file system)|Coda]] file system. == Implementations == Besides the original, a few other implementations were developed. [[OpenAFS]] was built from source released by [[Transarc]] ([[International Business Machines|IBM]]) in 2000.<ref>[https://web.archive.org/web/20080223002706/http://www-128.ibm.com/developerworks/opensource/library/os-afs.html Opening Up AFS]</ref> Transarc software became deprecated and lost support.{{when|date=October 2021}} Arla was an independent implementation of AFS developed at the [[Royal Institute of Technology]] in [[Stockholm]] in the late 1990s and early 2000s.<ref>{{Cite journal |title= Arla-a free AFS client |journal= Proceedings of the 1998 USENIX, Freenix Track |date= 1998 |author= Assar Westerlund and Johan Danielsson <!-- seems citeseer only? |doi= 10.1.1.16.1360--> |citeseerx= 10.1.1.16.1360 }}</ref><ref>{{Cite journal |title= Porting the Arla file system to Windows NT |journal= Workshop on Management and Administration of Distributed Environments |date= 2000 |author= Magnus Ahltorp, Love Hörnquist-Åstrand and Assar Westerlund <!-- seems citeseer only? |doi= 10.1.1.512.9570 --> |citeseerx= 10.1.1.512.9570 }}</ref> A fourth implementation of an AFS client exists in the [[Linux kernel]] [[source code]] since at least version 2.6.10.<ref>[https://archive.today/20120710092252/http://lxr.linux.no/source/Documentation/filesystems/afs.txt?v=2.6.10 Linux kernel AFS documentation for 2.6.10]</ref> Committed by [[Red Hat]], this is a fairly simple implementation still incomplete {{as of|2024|1|lc=on}}.<ref>{{cite web|url=https://lxr.linux.no/#linux+v6.7.1/Documentation/filesystems/afs.rst|date=7 January 2024|title=Linux kernel AFS documentation for 6.7.1|website=linux.no|access-date=11 May 2024}}</ref> == Available permissions == The following Access Control List (ACL) permissions can be granted: ;Lookup (l) :allows a user to list the contents of the AFS directory, examine the ACL associated with the directory and access subdirectories. ;Insert (i) :allows a user to add new files or subdirectories to the directory. ;Delete (d) :allows a user to remove files and subdirectories from the directory. ;Administer (a) :allows a user to change the ACL for the directory. Users always have this right on their home directory, even if they accidentally remove themselves from the ACL. Permissions that affect files and subdirectories include: ;Read (r) :allows a user to look at the contents of files in a directory and list files in subdirectories. Files that are to be granted read access to any user, including the owner, need to have the standard UNIX "owner read" permission set. ;Write (w) :allows a user to modify files in a directory. Files that are to be granted write access to any user, including the owner, need to have the standard UNIX "owner write" permission set. ;Lock (k) :allows the processor to run programs that need to "[[File locking|flock]]" files in the directory. Additionally, AFS includes Application ACLs (A)-(H) which have no effect on access to files. == See also == * [[Global filesystem]] == References == <references /> ==External links== * [http://www.openafs.org/ OpenAFS] * [http://www.stacken.kth.se/project/arla/ Arla] == Further reading == * [http://pages.cs.wisc.edu/~remzi/OSTEP/dist-afs.pdf The Andrew File System (2014), Arpaci-Dusseau, Remzi H.; Arpaci-Dusseau, Andrea C.; Arpaci-Dusseau Books] {{File systems}} {{Authority control}} [[Category:Network file systems]] [[Category:Carnegie Mellon University software]] [[Category:IBM file systems]] [[Category:Distributed file systems supported by the Linux kernel]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:As of
(
edit
)
Template:Authority control
(
edit
)
Template:Citation
(
edit
)
Template:Cite journal
(
edit
)
Template:Cite news
(
edit
)
Template:Cite web
(
edit
)
Template:Distinguish
(
edit
)
Template:File systems
(
edit
)
Template:Short description
(
edit
)
Template:Webarchive
(
edit
)
Template:When
(
edit
)