2.1.2.1 The server group will be informed of a new server being added after an administrator uses the add server command - Priority 1 [ ] [ ] 2.1.2.2 The recently informed server will communicate to all mirrored servers the addition of a new mirrored server - Priority 1 [ ] [ ] 2.1.2.3 Mirrored servers will be addressed by IP or domain name - Priority 1 [ ] [ ] 2.1.2.3.1 Valid IP addresses follow the format XXX.XXX.XXX.XXX, where X is any digit Priority 1 [ ] [ ] 2.1.2.3.2 Valid DNS addresses follow the format HOST.DOMAIN - Priority 1 [ ] [ ] 2.1.2.4 New servers will not need to have the same set of data to be added as mirrored servers - Priority 1 [ ] [ ] 2.1.2.4.1 Newly added servers will download a clone of all data on the existing live servers before they are made available for use by clients - Priority 1 [ ] [ ] 2.1.2.4.2 Existing servers will operate normally while a new mirrored server is receiving data Priority 1 [ ] [ ] 2.2.2.1.1 The administrator will have the ability to remove a server from serving only if there is another available mirrored server to connect to - Priority 1 [ ] [ ] 2.2.2.1.2 Immediately prior to removal the server will remove itself from the list of available servers - Priority 1 [ ] [ ] 2.2.2.1.3 Clients that are currently connected to the server being removed will automatically find and connect to another server - Priority 1 [ ] [ ] 2.2.2.1.3.1 There will be no data lost when this transfer occurs - Priority 1 [ ] 2.2.2.2.1 The failure of a server will be logged by all clients and servers - Priority 1 [ ] 2.2.2.2.2 If the failure is discovered by a server then all other servers will be notified and the failed server will be removed from the list of known servers - Priority 1 [ ] 2.2.2.2.3 If the failure is discovered by a client then the client will connect to a new server by the next quickest path - Priority 1 [ ] 2.2.2.2.3.1 The client will notify the server it connects to of the failed server Priority 1 [ ] 2.2.2.2.4 In the event of a server failure, any currently connected clients will automatically switch to the server with the fastest connection - Priority 1 [ ] 2.3.2.1 Any client will be able to see a list of all available servers - Priority 1 [ ] 2.3.2.2 An administrator will be able to see a list of all available servers - Priority 1 [ ] 2.3.2.3 The list will be formatted in three columns delineated by a newline character (\n) Priority 1 [ ] 2.3.2.3.1 Column one will be the DNS address of the server - Priority 1 [ ] 2.3.2.3.1.1 The DNS address will follow the HOST.DOMAIN format - Priority 1 [ ] 2.3.2.3.2 Column two will be the IP address of the server - Priority 1 [ ] 2.3.2.3.2.1 The IP address will follow the format XXX.XXX.XXX.XXX where Priority 1 [ ] X is any digit - 2.3.2.3.3 Column three will be the last recorded latency of the server - Priority 1 [ ] 2.3.2.3.3.1 The latency of the server will be listed in milliseconds (ms) - Priority 1 [ ] 2.4.2.1 An administrator will be able to enable encryption for the current session - Priority 2 [ ] 2.4.2.1.1 An administrator will be able to select the desired method of encryption for the session - Priority 2 [ ] 2.4.2.1.2 Supported methods of encryption include RSA, DES, and AES - Priority 3 [ ] 2.4.2.2 An administrator will be able to disable encryption for the current session - Priority 2 [ ] 2.4.2.3 Encryption will be DISABLED by default - Priority 2 [ ] 2.4.2.4 All data sent or received by a server or client can be encrypted - Priority 2 [ ] 2.4.2.5 All data sent or received by a server or client can be both encrypted and compressed Priority 2 [ ] 2.4.2.6 Servers will make use of encryption methods built in to the Linux kernel - Priority 2 [ ] 2.4.2.7 Only encrypt data if needed - Priority 2 [ ] 2.4.2.7.1 An administrator can set the default encryption scheme - Priority 2 [ ] 2.4.2.7.2 Clients will have the ability to change the encryption scheme each session if an administrator has not already done so - Priority 2 [ ] 2.5.2.1 An administrator will be able to enable compression for the current session - Priority 2 [ ] 2.5.2.1.2 Compression will utilize the current methods available in the Linux kernel - Priority 2 [ ] 2.5.2.2 An administrator will be able to disable compression for the current session - Priority 2 [ ] 2.5.2.3 Compression will be DISABLED by default - Priority 2 [ ] 2.5.2.4 Compression will only occur when compression will result in a significant difference in file size - Priority 2 [ ] 2.5.2.4.1 An administrator will set the default compression scheme - Priority 2 [ ] 2.5.2.4.2 Clients will have the ability to change the compression scheme each session - Priority 2[ ] 2.5.2.4.3 Data will only be compressed when the compression would result in a 15% or greater reduction in file size - Priority 2 [ ] 2.5.2.5 All data sent or received by a server or client can be compressed - Priority 2 [ ] 2.5.2.6 All data sent or received by a server or client can be both encrypted and compressed Priority 2 [ ] 2.6.2.1 Any client will be able to access the man page - Priority 2 [ ] 2.6.2.2 Any administrator will be able to access the man page - Priority 2 [ ] 2.7.1.1.1 Clients will keep track of latency to all servers - Priority 1 [ ] 2.7.1.1.2 The client will be informed of all known mirrored servers upon connection to any server in the group - Priority 1 [ ] 2.7.1.1.3 If a new mirrored server is added, the client will be informed as soon as the server is ready - Priority 1 [ ] 2.7.1.2 Clients will be able to read data from any server - Priority 1 [ ] 2.7.1.2.1 Each read will be done on only one server - Priority 1 [ ] 2.7.1.2.2 All mirrored servers will be pinged and their latencies will be recorded - Priority 1 [ ] 2.7.1.2.3 Servers will be chosen randomly with weight on lower latency; thus low latency servers will have a higher probability of being chosen then higher latency servers - Priority 1 [ ] 2.7.1.3 Clients will be able to write data to any server - Priority 1 [ ] 2.7.1.3.1 A client will be able to write to one, a subset, or all servers - Priority 1 [ ] 2.7.1.3.2 A write will be pushed to a server from the originating client or by other mirrored servers that have the update - Priority 1 [ ] 2.7.1.3.3 Latencies are pinged and kept track of in memory - Priority 1 [ ] 2.7.1.3.4 The path to write to all servers will be determined by the quickest way for the data to reach all of the servers from past latencies - Priority 1 [ ] 2.8.1.1 Client-server authentication will make use of a key-based system - Priority 2 [ ] 2.8.1.2 System keys will be based on current SSH keys - Priority 3 [ ] 3.3.1 Modifications to the NFS protocol laid out in this document will not noticeably affect the performance on either the server or client side - Priority 1 [ ] 3.3.1.1 Encrypting data will not decrease the speed from server to client by more than 10% Priority 2 [ ] 3.3.1.2 Compression will not decrease the transmission speed from server to client by more than 10%. - Priority 2 [ ] 3.3.1.3 The addition of Redundant servers will not decrease the access of files by more than 10% - Priority 2 [ ]