/ / Openstack Swift extraña conducta al copiar de nuevo los Dirs de Datos - openstack, openstack-swift

Openstack Swift comportamiento extraño al copiar de nuevo los Data Dirs - openstack, openstack-swift

Por lo tanto, estoy viendo un comportamiento muy extraño conOpenstack Swift. Si comienzo todos los procesos de Swift y digo hacer una operación (p. Ej., Cargar un archivo), si mato todos mis procesos de Swift, copio todos los directorios de datos a alguna otra ubicación temporal, elimine el contenido de todos los directorios de datos, Copie todos los directorios temporales de nuevo al directorio de datos y vuelva a iniciar mis procesos rápidos. No puedo realizar un GET para el objeto. (Puedo acceder a la información del contenedor pero falla la descarga rápida).

He pasado horas depurando este extraño comportamiento. ¿Alguien más ha experimentado este problema?

Pasos para reproducir el error: (Suponiendo que 4 Dirs de datos dicen en / mnt / sdb1 / dir)

=> swift-init all start
=> swift upload some_container some_file
=> (Puede ser seguido por ninguna de las operaciones rápidas)
=> swift-init all kill
=> cp -R / mnt / sdb1 / 1 / mnt / sdb1 / 1_temp (copia del original a un directorio temporal)
=> cp -R / mnt / sdb1 / 2 / mnt / sdb1 / 2_temp (copia del original a un directorio temporal)
=> cp -R / mnt / sdb1 / 3 / mnt / sdb1 / 3_temp (copia del original a un directorio temporal)
=> cp -R / mnt / sdb1 / 4 / mnt / sdb1 / 4_temp (copia del original a un directorio temporal)
=> rm -rf / mnt / sdb1 / 1 / * (borra todos los contenidos del directorio de datos originales)
=> rm -rf / mnt / sdb1 / 2 / * (borra todos los contenidos del directorio de datos originales)
=> rm -rf / mnt / sdb1 / 3 / * (borra todos los contenidos del directorio de datos originales)
=> rm -rf / mnt / sdb1 / 4 / * (borra todos los contenidos del directorio de datos originales)
=> cp -R / mnt / sdb1 / 1_temp / mnt / sdb1 / 1 (copia al original desde el directorio temporal)
=> cp -R / mnt / sdb1 / 2_temp / mnt / sdb1 / 2 (copia al original desde el directorio temporal)
=> cp -R / mnt / sdb1 / 3_temp / mnt / sdb1 / 3 (copia al original desde el directorio temporal)
=> cp -R / mnt / sdb1 / 4_temp / mnt / sdb1 / 4 (copia al original desde el directorio temporal)

=> swift-init all start (inicia swift de nuevo)
=> lista rápida (esto tiene éxito)
=> swift list some_container (esto tiene éxito)
=> descarga rápida some_container some_file (esto falla)

Esto es muy extraño teniendo en cuenta el hecho de que acabo de mover el contenido.

Cualquier punteros?

Respuestas

0 para la respuesta № 1

Openstack Swift tiene un proceso de fondo queVerifica la replicación y consistencia de sus archivos. Cuando muevas los archivos por ti mismo, Swift probablemente lo entenderá como algún tipo de inconsistencia en función de la configuración de tu clúster e intentará solucionarlo. Entonces, eso no se supone que funcione.

Sin embargo, si todavía quieres descubrir quésucede, le recomiendo que enumere el contenido de su contenedor después de la carga, mueva los archivos y enumere su contenido de nuevo. Espera unos minutos y enumera de nuevo. Mueva los archivos de nuevo y la lista de nuevo. Eso puede ayudarlo a averiguar si el proceso en segundo plano está haciendo algo mientras mueve los archivos.