Restic: soporte para el nuevo Scaleway Object Storage (compatible con S3)

Creado en 5 oct. 2018  ·  22Comentarios  ·  Fuente: restic/restic

Salida de restic version

0.8.3

¿Qué debería hacer restic de manera diferente? ¿Qué funcionalidad crees que deberíamos agregar?

Agregue un nuevo backend que admita el nuevo almacenamiento de objetos de Scaleway

https://www.scaleway.com/docs/object-storage-feature/

¿Que estás tratando de hacer?

Me gustaría usar restic para hacer una copia de seguridad de mi VPS en Scaleway.
Dado que el tráfico interno será gratuito, me encantaría utilizar ese almacenamiento de objetos.

¿Restic te ayudó o te hizo feliz de alguna manera?

¡Restic es increíble!

s3

Comentario más útil

Para su información, esto funciona tanto en la región nl-ams o fr-par (sin ~/.aws/* ):

ip route add blackhole 169.254.169.254/32
mc config host add s3 https://s3.fr-par.scw.cloud:443 ACCESS SECRET
sed -i 's/S3v4/s3v2/g' ~/.mc/config.json
./restic_0.9.5_linux_amd64 -r s3:https://s3.fr-par.scw.cloud/BUCKETNAME init

Admitimos SigV4, pero no tenemos un punto final "común" y Minio no cambia de región ( The authorization header is malformed; the region 'us-east-1' is wrong; expecting 'fr-par' )

Salud

Todos 22 comentarios

@tapionx ¡ Gracias por completar la plantilla de problemas!

Primero, actualice su versión restic, la última versión es 0.9.2 y tiene muchas mejoras y correcciones desde la 0.8.3. Puede ir a https://github.com/restic/restic/releases para obtener un binario para su sistema operativo, si su administrador de paquetes no está actualizado.

En segundo lugar, Scaleway dice en su sitio web que el almacenamiento de objetos es compatible con S3, por lo que debería poder usarlo directamente con restic utilizando el backend de S3. Dicen que "actualmente admiten un subconjunto de operaciones de S3", pero inténtelo y vea cómo funciona. Más información está en https://www.scaleway.com/docs/s3-object-storage-api/ aparentemente.

Creo que la versión no es relevante aquí.
¡Lo intentaré de hecho! ¿Crees que es solo una cuestión de reemplazar s3.amazonaws.com con el punto final de Scaleway?

Sí, la nota de la versión fue solo una sugerencia amigable, considerando que su versión actual es muy antigua. Si puede, le recomiendo que actualice.

Sí, eso es lo primero que debe hacer; Intenta usarlo como S3 normal (pero obviamente con un punto final válido, como dices). Consulte https://restic.readthedocs.io/en/stable/030_preparing_a_new_repo.html#amazon -s3 para obtener instrucciones más detalladas 👍

Estoy de acuerdo con @rawtaz , debería funcionar de inmediato con el backend s3 o con el backend rclone, dado que funciona con programas como aws-cli : https://computingforgeeks.com/how-to- Backup-files-to-scaleway-object-storage-using-aws-cli /

Voy a cerrar este problema por ahora, no dude en agregar más comentarios cuando lo pruebe. ¡Gracias!

Parece que el almacenamiento de objetos de Scaleway no se puede utilizar si está usando firmas V4 (funciona bien con V2, al menos usando https://s3browser.com/)
con restic 0.9.2 obtengo:

Fatal: create repository at s3:s3.nl-ams.scw.cloud/restic-test failed: client.BucketExists: The request signature we calculated does not match the signature you provided. Check your key and signing method.

que es consistente con lo que obtengo cuando uso la firma V4 con s3browser:

image

Hm, hasta donde yo sé, la biblioteca s3 que estamos usando (minio-go) admite firmas v2 y v4. ¿Puedes decir algo sobre eso @harshavardhana?

¿Intentaste usar el backend rclone todavía?

Estamos tratando de no agregar nuevos backends por ahora, hacerlo crea mucho trabajo de mantenimiento y prueba ...

que es consistente con lo que obtengo cuando uso la firma V4 con s3browser:

Esto parece un error en Scaleway @juzam @ fd0 , podríamos obtener. TraceOn() para ver los encabezados de la solicitud y ver qué va a Scaleway.

Pero dado que ambos, restic, s3browser están viendo los mismos errores, lo más probable es que sea un problema del servidor.

¿Intentaste usar el backend rclone todavía?

@ fd0 todavía no, intentaré informar

Estamos tratando de no agregar nuevos backends por ahora, hacerlo crea mucho trabajo de mantenimiento y prueba ...

Ack. no es necesario agregar nuevos backends si podemos administrar con los existentes.

@harshavardhana De mis pruebas limitadas, parece que Scaleway solo admite firmas v2, pero aún debería ser utilizable con minio-go, ¿no es así? tal vez me estoy perdiendo algo obvio, lo siento.

@harshavardhana De mis pruebas limitadas, parece que Scaleway solo admite firmas v2, pero aún debería ser utilizable con minio-go, ¿no es así? tal vez me estoy perdiendo algo obvio, lo siento.

sí, en ese caso, necesitas usar minio.NewV2 () - ¿No creo que restic admita eso @ fd0 ?

tl; dr: funciona a través de rclone con firmas v2

@ fd0 feliz de informar que Scaleway S3 se puede usar si se configura a través de rclone backend con un depósito preexistente.

aquí está la configuración remota de rclone v1.43.1 relevante:

[scaleway]
type = s3
provider = Other
env_auth = false
access_key_id = xxxxxx
secret_access_key = yyyy
endpoint = s3.nl-ams.scw.cloud
acl = private
region = other-v2-signature

al principio no he especificado nada como región usando la opción 1 en la configuración remota de rclone:

Choose a number from below, or type in your own value
 1 / Use this if unsure. Will use v4 signatures and an empty region.
   \ ""
 2 / Use this only if v4 signatures don't work, eg pre Jewel/v10 CEPH.
   \ "other-v2-signature"

pero no funcionó, solo otra información que corrobora la teoría de que las firmas v4 no son una cosa en Scaleway.

Editar: el depósito ya debe estar presente , si no, rclone no puede crearlo con la configuración anterior, dando este error:

Post request put error: InvalidLocationConstraint: The specified location constraint is not valid.

¡Muchas gracias por dejar comentarios! :)

En realidad, uso este comando restic --repo rclone:scaleway:my-bucket init

# ~/.config/rclone/rclone.conf 

[scaleway]
type = s3
provider = Other
env_auth = false
access_key_id = MY_ACCESS_KEY
secret_access_key = MY_SECRET_KEY
endpoint = s3.nl-ams.scw.cloud
acl = private
region = other-v2-signature

Gracias @juzam

solo una actualización rápida para cualquiera que desee utilizar el servicio Scaleway. Recientemente tuve problemas para guardar copias de seguridad en la región nl-ams y el soporte sugirió cambiar el parámetro de región a region = nl-ams y el problema se resolvió. No probé ningún cubo en la región fr-par ahora disponible.

Para su información, esto funciona tanto en la región nl-ams o fr-par (sin ~/.aws/* ):

ip route add blackhole 169.254.169.254/32
mc config host add s3 https://s3.fr-par.scw.cloud:443 ACCESS SECRET
sed -i 's/S3v4/s3v2/g' ~/.mc/config.json
./restic_0.9.5_linux_amd64 -r s3:https://s3.fr-par.scw.cloud/BUCKETNAME init

Admitimos SigV4, pero no tenemos un punto final "común" y Minio no cambia de región ( The authorization header is malformed; the region 'us-east-1' is wrong; expecting 'fr-par' )

Salud

Restic debería actualizarse a la última versión de minio-go, hemos realizado algunos cambios para manejar los requisitos de la región de manera adecuada.

Restic debería actualizarse a la última versión de minio-go, hemos realizado algunos cambios para manejar los requisitos de la región de manera adecuada.

@ fd0 ¿ es esto difícil de implementar? incluso si funciona a través de rclone, usar el backend s3 directamente es más sencillo (y limpio si me preguntas). Gracias por tu tiempo :)

Debido a errores, recientemente cambié mi rclone.conf:

# ~/.config/rclone/rclone.conf 

[scaleway]
type = s3
provider = Scaleway
env_auth = false
access_key_id = MY_ACCESS_KEY
secret_access_key = MY_ACCESS_KEY
region = fr-par
endpoint = s3.fr-par.scw.cloud

Inspirado en https://habd.as/post/borg-backup-minio-scaleway/ artículo

Tuve el mismo problema y agregué soporte para Scaleway para minio-go. Luego reconstruyó restic (y mc) con la versión actualizada y ambos funcionan bien, no se requieren más cambios, solo use el backend s3.
Mis cambios establecen automáticamente la región correcta según la URL del punto final.
Envié un PR a minio-go (https://github.com/minio/minio-go/pull/1188), veamos si se fusionan.

Parece que depende de los desarrolladores inquietos agregar compatibilidad con la región. ¿Debería reabrirse este problema?

@ Kaan88 ¿ https://github.com/restic/restic/pull/2484 resuelve lo que acaba de preguntar (compatibilidad con la región)?

@rawtaz Definitivamente lo hace. No necesitaba configurar la variable de entorno.

¡Impresionante!

¿Fue útil esta página
0 / 5 - 0 calificaciones