[OpenAFS] Offline migration of AFS partition files (i.e. the contents of `/vicepX`)

Jeffrey Altman jaltman@secure-endpoints.com
Sat, 2 Mar 2019 17:29:31 -0500


This is a cryptographically signed message in MIME format.

--------------ms010003060501040908050000
Content-Type: text/plain; charset=utf-8
Content-Language: en-US
Content-Transfer-Encoding: quoted-printable

On 3/2/2019 3:42 PM, Ciprian Dorin Craciun wrote:
> On Wed, Dec 5, 2018 at 3:29 PM Harald Barth <haba@kth.se> wrote:
>>> Can I safely `rsync` the files from the old partition to the new one?=

>>
>> For Linux (The "new" server partition layout):
>>
>> If the file tree really is exactly copied (including all permissions
>> and chmod-bits) then you have everything you need.
>=20
>=20
>=20
> I would like to follow-up on this with some additional questions,
> which I'll try to keep as succinct as possible.  (Nothing critical,
> however I would like to have a little bit more insight into this.)
>=20
> (A)  When you state `exactly copied` you mean only the following
> (based on the `struct stat` members):
> * `st_uid` / `st_gid`;
> * `st_mode`;  (i.e. permissions;)
> * `st_atim`, `st_mtim` and `st_ctim`?  (i.e. timestamps)
> * no ACL's, no `xattr` (or `user_xattr`);
> * anything else?

The vice partition directory hierarchy is used to create a private
object store.   The reason that Harald said "exact copy" is because
OpenAFS leverages the fact that the "dafs" or "fs" bnode services
execute as "root" to encode information in the inode's metadata that is
not guaranteed to be a valid state from the perspective of normal file
tooling.

The current Linux OpenAFS vice partition format is endian sensitive.

For many years there was discussion of creating a plug-in interface for
the vice partition object storage.  This would permit separate formats
depending on the underlying file system capabilities and use of non-file
system object stores.

> (B)  Also (based on what I gathered by "peeking" into the `/vicepX`
> partition) there are only plain folders and plain files, without any
> symlinks or hard-links.

This is true for the current OpenAFS vice partition format.  It is not
true for all vice partition formats used by non-OpenAFS implementations.

> (C)  Moreover based on the same observations, I guess that the
> metadata (i.e. uid/gid/permissions/timestamps) for the actual folders
> inside of `/vicepX` don't matter much.  (Only the matadata for the
> actual files do.)

This is true for the existing OpenAFS vice partition format on Linux.

> (D)  (Not really related to migration)  Am I to assume that some of
> the files inside `AFSIDat` are identical in contents to the actual
> files on the `/afs` structure?  (Disregarding all meta-data, including
> filenames.)  Moreover am I to assume that all the files accessible
> from `/afs` are found somewhere inside `AFSIDat` with identical
> contents?

There is a mapping from AFS3 File ID to vice partition path.  AFS3
directories are stored as files as are AFS3 files, symlinks and mount
points. OpenAFS stores each AFS3 File ID data stream in a single file in
the current format.

> I.e. formalizing the last one:  if one would take any file accessible
> under `/afs` and would compute its SHA1, then by looking into all
> `/vicepX` partitions belonging to that cell, one would definitively
> find a matching file with that SHA1.

This is true for the current format.


> My curiosity into all this is because I want to prepare some `rsync`
> and `cpio` snippets that perhaps could help others in a similar
> endeavor.  Moreover (although I know there are at least two other
> "official" ways to achieve this) it can serve as an alternative backup
> mechanism.

The vice partition format should be considered to be private to the
fileserver processes.  It is not portable and should not be used as a
backup or transfer mechanism.

> BTW, is there a document that outlines the actual layout of the
> `/vicepX` structure?  I've searched a bit but found nothing useful.

The source code comments provide the best documentation.

Jeffrey Altman



--------------ms010003060501040908050000
Content-Type: application/pkcs7-signature; name="smime.p7s"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="smime.p7s"
Content-Description: S/MIME Cryptographic Signature

MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCC
DJowggYBMIIE6aADAgECAhBAAWafTz5dAElKUO3y42hlMA0GCSqGSIb3DQEBCwUAMDoxCzAJ
BgNVBAYTAlVTMRIwEAYDVQQKEwlJZGVuVHJ1c3QxFzAVBgNVBAMTDlRydXN0SUQgQ0EgQTEy
MB4XDTE4MTAyMzA1MDQyMloXDTE5MTEwMzA1MDQyMlowgZUxNTAzBgNVBAsMLFZlcmlmaWVk
IEVtYWlsOiBqYWx0bWFuQHNlY3VyZS1lbmRwb2ludHMuY29tMSswKQYJKoZIhvcNAQkBFhxq
YWx0bWFuQHNlY3VyZS1lbmRwb2ludHMuY29tMS8wLQYKCZImiZPyLGQBARMfQTAxNDI3RTAw
MDAwMTY2OUY0RjNFMjcwMDAwMzFGQjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
AJTyhcbPAvKyN1Vs9gjMN6oYnNwvoje6fdgl1mlqAkeIjASHSt1rupAuwXDcTCNVo7k4veY3
bmY9/q32DigX84dt/a15AQDBYhuCn0b5KKTkxOFTq0feIg2NjTz5w4Qnl7fsycxOeJurQXKT
wS655O4M3iGb0Y+txxCLwFfWD9p2TQ/nbZXmiCk0Kb+Zsd3IIMwpQ9JU9lSsQqIUzNZ+/3gE
eY9oAz7gEWHiOxp/0rnR0DKSqVIS0e7kVhBXjJ59G8iCWMoeSNVy1iVBcLz2TUt8HsEVUPjI
rsasYjbBt/PoHXZsNvJ/eN7I3KNiWf00ubf+4kzo92l31VJ/PkwEQNcCAwEAAaOCAqUwggKh
MA4GA1UdDwEB/wQEAwIFoDCBhAYIKwYBBQUHAQEEeDB2MDAGCCsGAQUFBzABhiRodHRwOi8v
Y29tbWVyY2lhbC5vY3NwLmlkZW50cnVzdC5jb20wQgYIKwYBBQUHMAKGNmh0dHA6Ly92YWxp
ZGF0aW9uLmlkZW50cnVzdC5jb20vY2VydHMvdHJ1c3RpZGNhYTEyLnA3YzAfBgNVHSMEGDAW
gBSkc9rvaTWKdcygGXsIMvhrieRC7DAJBgNVHRMEAjAAMIIBLAYDVR0gBIIBIzCCAR8wggEb
BgtghkgBhvkvAAYLATCCAQowSgYIKwYBBQUHAgEWPmh0dHBzOi8vc2VjdXJlLmlkZW50cnVz
dC5jb20vY2VydGlmaWNhdGVzL3BvbGljeS90cy9pbmRleC5odG1sMIG7BggrBgEFBQcCAjCB
rhqBq1RoaXMgVHJ1c3RJRCBDZXJ0aWZpY2F0ZSBoYXMgYmVlbiBpc3N1ZWQgaW4gYWNjb3Jk
YW5jZSB3aXRoIApJZGVuVHJ1c3QncyBUcnVzdElEIENlcnRpZmljYXRlIFBvbGljeSBmb3Vu
ZCBhdCBodHRwczovL3NlY3VyZS5pZGVudHJ1c3QuY29tL2NlcnRpZmljYXRlcy9wb2xpY3kv
dHMvaW5kZXguaHRtbDBFBgNVHR8EPjA8MDqgOKA2hjRodHRwOi8vdmFsaWRhdGlvbi5pZGVu
dHJ1c3QuY29tL2NybC90cnVzdGlkY2FhMTIuY3JsMCcGA1UdEQQgMB6BHGphbHRtYW5Ac2Vj
dXJlLWVuZHBvaW50cy5jb20wHQYDVR0OBBYEFJdlICa5IVm/mQsa1LIql1jf/0BXMB0GA1Ud
JQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDANBgkqhkiG9w0BAQsFAAOCAQEAvSWHh+2vqTbu
65C4E+eXKv9Wz5LzqJNGWbkMq0a4/LswbvpWgG3AmFqeWXmbjfoFxWjnltt4mAYH2s/YCE9X
74kc7TXcRW+GKLGbazW2v/gffBYHudxjtIJRvQpcsiqqYRI0eVCer3kRdAPuEYz+62y1CACP
qwvaNo4fSHCSEqLDglgxFw7bNs0xV4Fb0yw4L4bv1zsnT6hrNQ4ibJEqQ7Ciq1sDRAGc4SmV
P9I0rbCV6mYlxxOEvvUPFfppp4/YAKTLtXuzB+QeTW8fR1HvVbRZitnvTEBVP8ChDwhlj6NA
l16ZeJWeo+Wru3Lv4HCV2PuKyJjKoFYyr6Y3GjZ3ZzCCBpEwggR5oAMCAQICEQD53lZ/yU0M
d3D5YBtS2hU7MA0GCSqGSIb3DQEBCwUAMEoxCzAJBgNVBAYTAlVTMRIwEAYDVQQKEwlJZGVu
VHJ1c3QxJzAlBgNVBAMTHklkZW5UcnVzdCBDb21tZXJjaWFsIFJvb3QgQ0EgMTAeFw0xNTAy
MTgyMjI1MTlaFw0yMzAyMTgyMjI1MTlaMDoxCzAJBgNVBAYTAlVTMRIwEAYDVQQKEwlJZGVu
VHJ1c3QxFzAVBgNVBAMTDlRydXN0SUQgQ0EgQTEyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
MIIBCgKCAQEA0ZFNPM8KJzSSrkvpmtQla3ksT+fq1s9c+Ea3YSC/umUkygSm9UkkOoaoNjKZ
oCx3wef1kwC4pQQV2XHk+AKR+7uMvnOCIw2cAVUP0/Kuy4X6miqaXGGVDTqwVjaFuFCRVVDT
QoI2BTMpwFQi+O/TjD5+E0+TAZbkzsB7krk4YUbA6hFyT0YboxRUq9M2QHDb+80w53b1UZVO
1HS2Mfk9LnINeyzjxiXU/iENK07YvjBOxbY/ftAYPbv/9cY3wrpqZYHoXZc6B9/8+aVCNA45
FP3k+YuTDC+ZrmePQBLQJWnyS/QrZEdXsaieWUqkUMxPQKTExArCiP61YRYlOIMpKwIDAQAB
o4ICgDCCAnwwgYkGCCsGAQUFBwEBBH0wezAwBggrBgEFBQcwAYYkaHR0cDovL2NvbW1lcmNp
YWwub2NzcC5pZGVudHJ1c3QuY29tMEcGCCsGAQUFBzAChjtodHRwOi8vdmFsaWRhdGlvbi5p
ZGVudHJ1c3QuY29tL3Jvb3RzL2NvbW1lcmNpYWxyb290Y2ExLnA3YzAfBgNVHSMEGDAWgBTt
RBnA0/AGi+6ke75C5yZUyI42djAPBgNVHRMBAf8EBTADAQH/MIIBIAYDVR0gBIIBFzCCARMw
ggEPBgRVHSAAMIIBBTCCAQEGCCsGAQUFBwICMIH0MEUWPmh0dHBzOi8vc2VjdXJlLmlkZW50
cnVzdC5jb20vY2VydGlmaWNhdGVzL3BvbGljeS90cy9pbmRleC5odG1sMAMCAQEagapUaGlz
IFRydXN0SUQgQ2VydGlmaWNhdGUgaGFzIGJlZW4gaXNzdWVkIGluIGFjY29yZGFuY2Ugd2l0
aCBJZGVuVHJ1c3QncyBUcnVzdElEIENlcnRpZmljYXRlIFBvbGljeSBmb3VuZCBhdCBodHRw
czovL3NlY3VyZS5pZGVudHJ1c3QuY29tL2NlcnRpZmljYXRlcy9wb2xpY3kvdHMvaW5kZXgu
aHRtbDBKBgNVHR8EQzBBMD+gPaA7hjlodHRwOi8vdmFsaWRhdGlvbi5pZGVudHJ1c3QuY29t
L2NybC9jb21tZXJjaWFscm9vdGNhMS5jcmwwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUF
BwMEMA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUpHPa72k1inXMoBl7CDL4a4nkQuwwDQYJ
KoZIhvcNAQELBQADggIBAA3hgq7S+/TrYxl+D7ExI1Rdgq8fC9kiT7ofWlSaK/IMjgjoDfBb
PGWvzdkmbSgYgXo8GxuAon9+HLIjNv68BgUmbIjwj/SYaVz6chA25XZdjxzKk+hUkqCmfOn/
twQJeRfxHg3I+0Sfwp5xs10YF0RobhrsCRne6OUmh9mph0fE3b21k90OVnx9Hfr+YAV4ISrT
A6045zQTKGzb370whliPLFo+hNL6XzEty5hfdFaWKtHIfpE994CLmTJI4SEbWq40d7TpAjCm
KCPIVPq/+9GqggGvtakM5K3VXNc9VtKPU9xYGCTDIYoeVBQ65JsdsdyM4PzDzAdINsv4vaF7
yE03nh2jLV7XAkcqad9vS4EB4hKjFFsmcwxa+ACUfkVWtBaWBqN4f/o1thsFJHEAu4Q6oRB6
mYkzqrPigPazF2rgYw3lp0B1gSzCRj+jRtErIVdMPeZ2p5Fdx7SNhBtabuhqmpJkFxwW9SBg
6sHvy0HpzVvEiBpApFKG1ZHXMwzQl+pR8P27wWDsblJU7Qgb8ZzGRK9l5GOFhxtN+oXZ4CCm
unLMtaZ2vSai7du/VKrg64GGZNAKerEBevjJVNFgeSnmUK9GB4kCZ7U5NWlU+2H87scntW4Q
/0Y6vqQJcJeaMHg/dQnahTQ2p+hB1xJJK32GWIAucTFMSOKLbQHadIOiMYIDFDCCAxACAQEw
TjA6MQswCQYDVQQGEwJVUzESMBAGA1UEChMJSWRlblRydXN0MRcwFQYDVQQDEw5UcnVzdElE
IENBIEExMgIQQAFmn08+XQBJSlDt8uNoZTANBglghkgBZQMEAgEFAKCCAZcwGAYJKoZIhvcN
AQkDMQsGCSqGSIb3DQEHATAcBgkqhkiG9w0BCQUxDxcNMTkwMzAyMjIyOTMxWjAvBgkqhkiG
9w0BCQQxIgQgvcfgpU2rWYB7Ieu3DeLaGbmV4g117DsOFlj+Q9xR3tkwXQYJKwYBBAGCNxAE
MVAwTjA6MQswCQYDVQQGEwJVUzESMBAGA1UEChMJSWRlblRydXN0MRcwFQYDVQQDEw5UcnVz
dElEIENBIEExMgIQQAFmn08+XQBJSlDt8uNoZTBfBgsqhkiG9w0BCRACCzFQoE4wOjELMAkG
A1UEBhMCVVMxEjAQBgNVBAoTCUlkZW5UcnVzdDEXMBUGA1UEAxMOVHJ1c3RJRCBDQSBBMTIC
EEABZp9PPl0ASUpQ7fLjaGUwbAYJKoZIhvcNAQkPMV8wXTALBglghkgBZQMEASowCwYJYIZI
AWUDBAECMAoGCCqGSIb3DQMHMA4GCCqGSIb3DQMCAgIAgDANBggqhkiG9w0DAgIBQDAHBgUr
DgMCBzANBggqhkiG9w0DAgIBKDANBgkqhkiG9w0BAQEFAASCAQBh7WKE8oqBihmNlVjR/b0C
Op5nBRL1V58Yv1swaEVH+wR2y7FzPHqoFykCH9zoSqiRs4G63/bKuVbg29Mo9X5hD6g9YE3Y
MagtlC8AUDFc6oiqTeWkKuWWBVsa4G1H+MSGCj32gI1oXb9xC+L6OYfLARUlfo+iSlHyj/nA
Hj4QPQUa9rOMNE4hB7py/4dwDasjW1Q+cuXgP6ArRLxWgui/zGQU/vO1AoH0fsznL/OYCmeY
KNM+IvKkSCnzVyrYtwJ0IeHAY1n0bEX/9nsQvHNecXXBuHqDYo8el3ZC8Mzp3RnOQDpJuH92
hLWi9kUYm5QKXj3YB74ABhacQyJJXIEAAAAAAAAA
--------------ms010003060501040908050000--