Cómo optimizar el coste de Backblaze B2 Transactions Class C con Rclone y –fast-list

Actualizada:

Si estás usando el servicio de almacenamiento online Backblaze B2, te habrás dado cuenta de que ofrece una de las mejores opciones calidad precio dle mercado, pero, aun así, hay que tener cuidado cuando realizamos ciertas operaciones, que nos pueden llevar a asumir un coste extra que ni nos habíamos planteado. Estoy hablando del coste que puede suponer realizar muchas transacciones Class C. Te voy a contar cómo minimizar su coste si usas el programa Open Source Rclone utilizando –fast-list.

Cuáles son los precios de Backblaze B2 y como te pueden afectar

En principio, Backblaze B2 es una de las opciones más baratas: por 1 TB guardado en sus servidores vamos a pagar 6$/mes (72 $/año). No hay cargos por subir tus archivos a BackBlaze.

Backblaze B2 es una de las opciones más baratas: por 1 TB guardado en sus servidores vamos a pagar 6$/mes (72 $/año).

Y puedes descargar hasta 3 TB al mes sin que te cobren nada.

Vale, pero también tenemos que pagar otras cosas, como la API Calls. Normalmente, no notas nada porque:

Las Class Transactions A son gratis.

B2 Native APIS3 Compatible API
b2_cancel_large_fileAbortMultipartUpload
b2_delete_bucketDeleteBucket
b2_delete_file_versionDeleteObject
b2_delete_keyDeleteObjects
b2_finish_large_fileCompleteMultipartUpload
b2_get_upload_part_urlCreateMultipartUpload
b2_get_upload_urlPutObjectLegalHold
b2_hide_filePutObjectRetention
b2_start_large_filePutObject
b2_update_file_legal_holdUploadPart
b2_update_file_retentionPutObjectLockConfiguration
b2_upload_file
b2_upload_part

Las Class Transactions B: Las primeras 2.500 de estas llamadas son gratuitas cada día, luego 0,004 $ por cada 10.000.

B2 Native APIS3 Compatible API
b2_download_file_by_idGetObject
b2_download_file_by_nameGetObject
b2_get_file_infoHeadObject
GetObjectLegalHold
GetObjectLockConfiguration
GetObjectRetention

Las Class Transactions C: Las primeras 2.500 de estas llamadas son gratuitas cada día, luego 0,004 $ por cada 10.000.

Las Class Transactions C: Las primeras 2.500 de estas llamadas son gratuitas cada día, luego 0,004 $ por cada 10.000.
B2 Native APIS3 Compatible API
b2_authorize_accountListParts
b2_copy_fileCopyObject (Put Object Copy)
b2_copy_partUploadPartCopy
b2_create_bucketCreateBucket
b2_create_keyListMultipartUploads
b2_get_download_authorizationListBuckets
b2_list_bucketsListObjectsV2
b2_list_file_namesListObjectVersions
b2_list_file_versionsDeleteBucketCors
b2_list_keysDeleteBucketEncryption
b2_list_partsGetBucketAcl (List Objects)
b2_list_unfinished_large_filesGetBucketCors
b2_update_bucketGetBucketEncryption
GetBucketLocation
GetBucketVersioning
GetObjectAcl
HeadBucket
PutBucketAcl
PutBucketCors
PutBucketEncryption
PutObjectAcl

¿Problema? Que si tienes muchos archivos en tu backup, vamos, que si tienes una gran cantidad de TB en tu copia de seguridad, los costes de las Class Transactions C, van a empezar a aumentar por las llamadas que hacen programas como Rclone al back-end de Backblaze B2. Estas transacciones incluyen operaciones como listar directorios, creación, cambio de nombre o eliminación de archivos. Vamos, operaciones que se hacen de manera habitual cuando sincronizamos archivos online con nuestro servidor, ordenador o NAS.

¿Cómo podemos reducir el coste de las de las Class Transactions C cuando usamos un programa como Rclone?

Ya te he contado Cómo cifrar tus datos en la nube con Rclone y Cómo instalar Rclone en Rocky Linux 9, así que el siguiente paso es ver como optimizar tu gasto si estás subiendo backups a Backblaze B2.

En primer lugar, te recomiendo que si puedes, comprimas primero tu backup y luego lo subas a B2. Te vas a horrar disgustos con los nombres de archivos si quieres cifrar el bucket. Y vas a tener todo más controlado.

Como a veces esto no es posible y a. lo mejor tienes muchos TB que quieres subir online, cuando vas a usar Rclone, tienes que empezar a usar una opción en sus comandos llamada –fast-list. Utilizando esta opción en tus comandos, vas a conseguir lo siguiente:

  • Optimización del listado de archivos: En lugar de listar archivos de un directorio a la vez, –fast-list intenta obtener la lista completa de archivos de una sola vez, reduciendo el número total de solicitudes API.
  • Mejora del rendimiento: Es muy útil para B2 remotos con grandes cantidades de archivos, ya que disminuye el tiempo total necesario para listar todos los archivos antes de iniciar las operaciones de sincronización, copia o verificación.

¿Única pega que tiene poner esta opción en tus comandos? Va a usar más memoria RAM de tu servidor u ordenador. Si vas a realizar una gran sincronización, asegúrate de tener memoria RAM suficiente para poder ejecutarla, o el proceso se va a ir al garete. ¿Cómo puedes comprobar el uso de memoria que va a hacer Rclone con los archivos que quieres subir? Con este comando:

rclone -l test memory /ruta/a/tu/backup

Y te va a dar un resultado como este (en mi caso):

NOTICE: 78 objects took 15320 bytes, 196.4 bytes/object
NOTICE: System memory changed from 22893832 to 22893832 bytes a change of 0 bytes

En mi caso me sale que cada objeto de la carpeta que transfiero a B2 va a hacer uso de 196.4 bytes cuando hago la transferencia mediante Rclone. Puedes hacer el mismo cálculo con los archivos que tienes online:

rclone -l test memory b2cifrado:

Pero está recomendado usar esta opción si tus directorios son muy grandes, con muchos archivos para reducir el número de llamada API y mejorar la velocidad de sincronización. Vas a ver cómo se reducen las llamadas a las transacciones Class C de Backblaze.

¿Cómo puede quedar el comando?

rclone sync /backup/ b2cifrado: --fast-list --transfers 16 --b2-chunk-size 128M --buffer-size 64M --log-file=/ruta/a/rclone-sync.log --log-level INFO --progress

¡Ojo! Deberías usar esta opción en todos tus comandos, por ejemplo rclone ls b2cifrado: –fast-list o con el comando copy o Sync. Si ya tienes estos comandos en cron o en un script, no hay problema, pero si usas mucho la línea de comandos, a lo mejor se te olvida a veces. Tiene solución:

Editas el archivo ~/.bashrc, que es donde puedes guardar variables y alias en tu línea de comandos:

vi ~/.bashrc 

y pones lo siguiente:

export RCLONE_FAST_LIST=true

O también puedes poner:

export RCLONE_FAST_LIST="1"

Funciona de las dos maneras. Elige la que quieras (compruébalo tú mismo). Luego aplicas los cambios:

source ~/.bashrc

Desde este momento, todos tus comandos de Rclone irán con la opción –fast-list sin necesidad de ponerlo.

¿Cómo compruebas que funciona? Pones en el comando -vv para poder ver toda la info del comando:

$ rclone lsd b2cifrado: -vv

DEBUG : Setting --fast-list "true" from environment variable RCLONE_FAST_LIST="true"
DEBUG : rclone: Version "v1.67.0" starting with parameters ["rclone" "lsd" "b2cifrado:" "-vv"]

Descubre más desde algoentremanos.com

Suscríbete y recibe las últimas entradas en tu correo electrónico.

Foto del autor

Ivan Benito

Apasionado de la lectura y los viajes, experto en tecnología e informática y fan de la privacidad online. Desde el año 2007 me he dedicado al SEO, a escribir y a crear páginas web con WordPress sobre todo tipo de temáticas. Si tienes alguna duda y necesitas ayuda... ¡Pregúntame!

Si tienes preguntas, quieres que hagamos una review de una app, programa o producto, simplemente mándanos un e-mail mediante nuestro formulario de contacto. Te contestaremos en el menor tiempo posible. ¡Muchas gracias y salU2! Algoentremanos realiza reviews de manera profesional y en muchas ocasiones recibimos compensación de las compañías cuyos productos revisamos. Probamos cada producto a fondo y otorgamos altas calificaciones solo a los mejores. La propiedad de Algoentremanos.com es independiente y las opiniones expresadas aquí son solo nuestras. Algunos enlaces del artículo son afiliados: pueden generar un beneficio a algoentremanos.com. Saber más.

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.