Skip to content

Registry SWIFT backend create directories with long filenames of 284 chars, making backups on a filesystem impossible #2311

@zoobab

Description

@zoobab

Hi,

I am trying to backup a SWIFT volume of a registry.

The docker registry appears to create directories like this:

CloudFiles/Containers/myregistry/segments/2f646f636b65722f72656769737472792f76322f7265706f7369746f726965732f62757379626f782f5f75706c6f6164732f32303934663265382d636565642d346165652d396336332d3465643234653230653932322f6461746188d844f2e21d3c105ef84989a563e45cebeed52752a43737a4732f90b7d38018da39a3ee5e6b4b0d3255bfef95601890afd80709/0000000000000001

When you try to backup those files by copying them to a standard linux filesystem, you will hit a 255 filename limitation.

Here with the rclone tool:

2017/06/20 07:53:08 segments/2f6/46f636b65722f72656769737472792f76322f7265706f7369746f726965732f616c70696e653335366d2f5f75706c6f6164732f63343361313531662d383338342d343861372d626232302d3433643664383661643336302f64617461625f4826b57e72ee3dd0159e6442df9b3361759f1a6fa7ca80d823498ac6db49da39a3ee5e6b4b0d3255bfef95601890afd80709/0000000000000001: Failed to copy: mkdir /test79/segments/2f6/46f636b65722f72656769737472792f76322f7265706f7369746f726965732f616c70696e653335366d2f5f75706c6f6164732f63343361313531662d383338342d343861372d626232302d3433643664383661643336302f64617461625f4826b57e72ee3dd0159e6442df9b3361759f1a6fa7ca80d823498ac6db49da39a3ee5e6b4b0d3255bfef95601890afd80709: file name too long

But you can also reproduce with a simple mkdir on your linux box:

$ mkdir 46f636b65722f72656769737472792f76322f7265706f7369746f726965732f616c70696e653335366d2f5f75706c6f6164732f63343361313531662d383338342d343861372d626232302d3433643664383661643336302f64617461625f4826b57e72ee3dd0159e6442df9b3361759f1a6fa7ca80d823498ac6db49da39a3ee5e6b4b0d3255bfef95601890afd80709
mkdir: cannot create directory '46f636b65722f72656769737472792f76322f7265706f7369746f726965732f616c70696e653335366d2f5f75706c6f6164732f63343361313531662d383338342d343861372d626232302d3433643664383661643336302f64617461625f4826b57e72ee3dd0159e6442df9b3361759f1a6fa7ca80d823498ac6db49da39a3ee5e6b4b0d3255bfef95601890afd80709': File name too long

If you try the swift tool part of the openstack python package, you will hit the same problem.

Does anybody has a workaround for this (kernel patch, kernel tuning, special filesystem...)?

Could the devs shorten the directory name to a shorter length for the future?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions