Almacenamiento en la nube de Riak. Parte 2. Configuración del componente Riak CS

En este artículo, continuaremos configurando los componentes individuales del sistema Riak Cloud Storage, es decir, el componente Riak CS.



imagen


Este artículo es una continuación de las traducciones gratuitas del manual oficial del sistema Riak CS 2.1.1.

Parte 1. Configuración de Riak KV

Parte 3. Soporte, proxy y equilibrio de carga, cliente S3

Para garantizar el correcto funcionamiento del componente Riak CS, es importante saber cómo conectarse al Riak KV. Un nodo Riak CS generalmente se ejecuta en el mismo servidor que su correspondiente nodo Riak KV. Esto significa que los cambios solo serán necesarios si el Riak se configura utilizando parámetros distintos a los predeterminados.



La configuración de Riak CS se encuentra en el nodo CS en los archivos de configuración riak-cs.conf y advanced.conf. Ambos archivos se encuentran normalmente en el directorio / etc / riak-cs. El nuevo archivo riak-cs.conf es una lista simple con pares de opciones config = , pero hay opciones que solo se pueden cambiar a través del archivo advanced.config. Se parece a esto:



ADVANCED.CONFIG



{riak_cs, [
    {parameter1, value},
    {parameter2, value},
    %% and so on...
]},


Si está actualizando desde una versión anterior a la 2.0.0, cuando se introdujo el archivo riak-cs.conf, aún puede usar el archivo app.config ubicado en la ubicación de riak-cs.conf / advanced.config. El archivo app.config tiene la misma sintaxis que el archivo advanced.conf, por lo que cualquier ejemplo que se use para advanced.conf se puede usar directamente en el archivo app.config.

Tenga en cuenta que el antiguo archivo app.config reemplaza a los nuevos archivos de configuración. Si app.config está presente, no se utilizará ni riak-cs.conf ni advanced.config.
Nota: acerca de app.config heredado

Si está actualizando desde versiones anteriores de Riak CS a Riak CS 2.0 y planea continuar usando el archivo app.config heredado, tenga en cuenta que los nombres de las opciones han cambiado en algunos de los archivos de configuración. Además, el formato IP / Port se cambió en la versión 2.0 para Stanchion, Riak, Riak CS. Puede ver los cambios en el documento de actualizaciones progresivas .



Para obtener una lista exhaustiva de opciones disponibles y una lista completa de opciones para app.config, consulte la Referencia de configuración completa .
Las siguientes secciones describen opciones de configuración importantes para Riak CS.



Host y puerto.



Para conectar Riak CS a Riak KV, asegúrese de que el parámetro de host y puerto utilizado por Riak KV esté configurado:



  • riak_host : reemplace 127.0.0.1:8087 con la dirección IP y el número de puerto del nodo Riak KV al que desea conectar el Riak CS.


También debe configurar el host de escucha para Riak CS:



  • oyente : reemplace 127.0.0.1:8080 con la dirección IP y el número de puerto del host Riak CS si tiene la intención de usarlo de manera no local. Asegúrese de que el número de puerto no entre en conflicto con el puerto riak_host del host Riak KV y el host Riak CS que se ejecutan en la misma máquina.


Nota: acerca de la dirección IP La dirección

IP que ingrese aquí debe coincidir con la dirección IP especificada para la interfaz de búfer de protocolo Riak KV en el archivo riak.conf, a menos que Riak CS se esté ejecutando en una red completamente diferente, en cuyo caso es necesario traducción de direcciones.
Después de algunos cambios en riak-cs.conf, reinicie el nodo Riak CS si ya se estaba ejecutando.



Parámetros del nodo Stanchion



Si está utilizando un nodo Riak CS, entonces no necesita cambiar la configuración de Stanchion, ya que se ejecuta en el host local (Nota. Stanchion se instala en una sola instancia para todo el clúster). Si el sistema Riak CS tiene varios nodos, debe especificar la dirección IP y el puerto del nodo Stanchion y si se utiliza SSL o no.

Los parámetros para Stanchion se encuentran en el archivo de configuración riak-cs.conf del nodo Riak CS ubicado en el directorio ./etc/riak-cs/conf de cada nodo Riak CS.



Para configurar el host y el puerto para Stanchion, asegúrese de que el siguiente parámetro esté configurado para el host y el puerto utilizados por Stanchion:



  • stanchion_host : reemplace 127.0.0.1:8085 con la dirección IP y el puerto del host de Stanchion.


Usando SSL



SSL está deshabilitado de forma predeterminada en Stanchion, es decir, parámetro stanchion_ssl se establece fuera . Si Stanchion está configurado para usar SSL, cambie el valor a activado . El siguiente ejemplo de configuración establece el host de Stanchion en localhost, puerto 8085 (predeterminado) y permite que se utilice SSL.



RIAK-CS.CONF



stanchion_host = 127.0.0.1:8085
stanchion_ssl = on


CONFIGURACIÓN AVANZADA

{riak_cs, [
    %% Other configs
    {stanchion_host, {"127.0.0.1", 8085}},
    {stanchion_ssl, true},
    %% Other configs
]}


Configuración del nombre de host



También puede definir un nombre de host de Riak CS más conveniente para ayudarlo a identificar el host que se le solicita durante la resolución de problemas. Esto se configura en el archivo de configuración riak-cs.conf o vm.args, que también se encuentra en /etc/riak-cs.conf. El nombre del nodo Riak CS se establecerá aquí riak_cs@127.0.0.1:



RIAK-CS.CONF



nodename = riak_cs@127.0.0.1


VM.ARGS



-name riak_cs@127.0.0.1


Cambie 127.0.0.1 por la dirección IP o el nombre de host del servidor que ejecuta Riak CS.



Crea una cuenta de administrador



Un administrador es un usuario autorizado especial para realizar acciones como crear usuarios u obtener estadísticas. Una cuenta de administrador no es diferente de la cuenta de otro usuario. Debe crear una cuenta de administrador para el uso futuro de Riak CS.

Nota: sobre la creación de un usuario anónimo.



Antes de crear una cuenta de administrador, debe establecer el parámetro anonymous_user_creation = on en riak-cs.conf (o establecer {anonymous_user_creation, true} en advanced.config / app.config). Puede desactivarlo de nuevo cuando se crea el administrador.
Para crear una cuenta de administrador, utilice una solicitud POST HTTP y el nombre de usuario que desee para la cuenta de administrador. Por ejemplo, como:



CURL



curl -H 'Content-Type: application/json' \
  -XPOST http://<host>:<port>/riak-cs/user \
  --data '{"email":"admin@example.com", "name":"admin"}'


La respuesta JSON debería verse así:



{
  "display_name" : "admin",
  "email" : "admin@example.com",
  "id" : "8d6f05190095117120d4449484f5d87691aa03801cc4914411ab432e6ee0fd6b",
  "key_id" : "OUCXMB6I3HOZ6D0GWO2D",
  "key_secret" : "a58Mqd3qN-SqCoFIta58Mqd3qN7umE2hnunGag==",
  "name" : "admin_example",
  "status" : "enabled"
}


Opcionalmente, puede enviar y recibir XML configurando Content-Type en application / xml.



Una vez que se ha creado el administrador, debe establecer privilegios de administrador para cada nodo de Riak CS. Los privilegios de administrador se establecen en el archivo de configuración riak-cs.conf ubicado en el directorio / etc / riak-cs. Inserte una línea key_id entre las comillas para admin.key. Pegar el campo de parámetro de clave_secreta admin.secret:



RIAK-CS.CONF



admin.key = OUCXMB6I3HOZ6D0GWO2D
admin.secret = a58Mqd3qN-SqCoFIta58Mqd3qN7umE2hnunGag==


CONFIGURACIÓN AVANZADA



{riak_cs, [
           %% Admin user credentials
           {admin_key, "OUCXMB6I3HOZ6D0GWO2D"},
           {admin_secret, "a58Mqd3qN-SqCoFIta58Mqd3qN7umE2hnunGag=="},
           %% Other configs
          ]}


Limitación de cubos



También puede establecer un límite en la cantidad de depósitos creados por el usuario. El valor predeterminado es 100 cubos como máximo. Tenga en cuenta que si el usuario supera el límite de creación de un depósito, seguirá estando disponible para otras operaciones, incluida la eliminación de un depósito. Puede cambiar el límite predeterminado usando el parámetro max_buckets_per_user en cada nodo en el archivo advanced.config, y este no será un cambio igual en el archivo riak-cs.conf. Por ejemplo, la siguiente configuración especifica un máximo de 1000:



ADVANCED.CONFIG



{riak_cs, [
           %% Other configs
           {max_buckets_per_user, 1000},
           %% Other configs
          ]}


Si desea eliminar las restricciones sobre la creación de depósitos por un usuario, puede establecer el valor del parámetro max_buckets_per_user en ilimitado.



Grupos de conexiones



Riak CS utiliza dos grupos de conexiones explícitos para comunicarse con Riak KV: grupos primarios (primarios) y secundarios.



El grupo de conexiones principal se utiliza para atender la mayoría de las solicitudes de API relacionadas con la carga o recuperación de objetos. Se especifica en el archivo de configuración como pool.request.size . El tamaño del grupo predeterminado es 128. El



grupo de conexiones secundario se utiliza estrictamente para las solicitudes de enumeración del contenido del depósito. Se requiere un grupo de conexiones independiente para mejorar el rendimiento.

El grupo de conexiones secundario se define en el archivo de configuración como pool.list.size . De forma predeterminada, su tamaño es 5.



A continuación se muestra la entrada de configuración connection_poolsel valor predeterminado que se puede encontrar en el archivo



app.config : RIAK-CS.CONF



pool.request.size = 128
pool.request.overflow = 0
pool.list.size = 5
pool.list.overflow = 0


CONFIGURACIÓN AVANZADA



{riak_cs, [
           %% Other configs
           {connection_pools,
           [
            {request_pool, {128, 0} },
            {bucket_list_pool, {5, 0} }
           ]},
           %% Other configs
]}


El valor de cada grupo se divide en pares, donde el primer número representa el tamaño normal del grupo. Este es el número de solicitudes simultáneas de un tipo particular que el nodo Riak CS puede atender. El segundo número es el número de desbordamientos permitidos de la piscina. No se recomienda usar ningún valor que no sea 0 para el desbordamiento aquí, a menos que una prueba cuidadosa haya demostrado que el valor elegido es útil para el caso particular.



Afinación



Recomendamos encarecidamente que tenga cuidado al establecer el valor del parámetro pb_backlog en Riak KV. Cuando se inicia el nodo Riak CS, cada grupo de conexiones establece conexiones con el Riak KV. Esto puede conducir a un problema de manada atronador , en el que se cree que las conexiones en la piscina están relacionadas con el Riak KV, pero en realidad se eliminaron. Debido a la limitación de la velocidad de los paquetes TCP RST (controlada por el parámetro net.inet.icmp.icmplim ), es posible que algunos paquetes no reciban notificación hasta que se utilicen para atender la solicitud del usuario. Esto se manifiesta como mensajes de {error, desconectado} en los archivos de registro de Riak CS y un error devuelto al usuario.



Conexión SSL en Riak-CS



RIAK-CS.CONF



ssl.certfile = "./etc/cert.pem"
ssl.keyfile = "./etc/key.pem"


CONFIGURACIÓN AVANZADA

{ssl, [
    {certfile, "./etc/cert.pem"},
    {keyfile, "./etc/key.pem"}
   ]},


Reemplace el texto entre comillas en la ruta a sus claves de cifrado SSL. De forma predeterminada, en cada nodo, los archivos cert.pem y key.pem se encuentran en el directorio / etc. Puede utilizar estas claves o las suyas propias.



Tenga en cuenta que también debe proporcionar una autoridad de certificación (CA), es decir, un certificado de CA. Si puede, debe utilizar el archivo de configuración advanced.config y especificar su ubicación en el parámetro cacertfile . A diferencia de certfile y keyfile, el parámetro cacertfile no está comentado. Aquí es donde debe agregar su certificado. Un ejemplo de dicha configuración:



ADVANCED.CONFIG



{ssl, [
       {certfile, "./etc/cert.pem"},
       {keyfile, "./etc/key.pem"},
       {cacertfile, "./etc/cacert.pem"}
      ]},
      %% Other configs


Puede encontrar instrucciones sobre cómo crear un certificado de CA en recursos de terceros .



Proxy frente a conexión directa



Riak CS puede interactuar con los clientes de S3 de dos formas:



  1. configuración de proxy: cuando un cliente S3 se conecta a Riak CS como si fuera de Amazon S3, es decir, con las URL típicas de Amazon.
  2. conexión directa: requiere que el cliente S3 conectado a Riak CS esté configurado como un "servicio compatible con S3", es decir, el punto de conexión de Riak CS se hace pasar por Amazon S3. Ejemplos de tales servicios son Transmit, s3cmd, DragonDisk.


Apoderado



Para configurar la configuración del proxy, configure su cliente proxy como un punto en la dirección del clúster Riak CS. Luego configure su cliente con credenciales Riak CS.



Cuando Riak CS recibe una solicitud de proxy, atiende la solicitud en sí y responde al cliente como si la solicitud fuera a S3.



En el lado del servidor, el parámetro root_host en el archivo riak-cs.conf debe ser s3.amazonaws.com porque todas las solicitudes del cliente para las URL de depósito se dirigirán a s3.amazonaws.com. Este es el predeterminado.

Importante : un problema con las configuraciones de proxy es que muchos clientes de GUI solo permiten que se configure un proxy para todas las conexiones. Para los clientes que intentan conectarse tanto a S3 como a Riak CS, esto puede resultar problemático.

Conexión directa



La conexión directa se configura a través del parámetro cs_root_host en la sección riak-cs del archivo app.config. El valor debe establecerse en el FQDN de su punto de entrada de Riak CS, ya que todas las URL de depósito apuntarán al punto de entrada FQDN.



También necesitará registros DNS comodín para cualquier hijo del punto de entrada para resolverlo en el propio punto final. Ejemplo:



CONFIG



data.riakcs.net
*.data.riakcs.net


Configuración del recolector de basura



imagen


Las siguientes configuraciones están disponibles para configurar el recolector de basura en Riak CS. Para obtener más información, consulte la sección Recolección de basura .



  • gc.leeway_period — (leeway_seconds advanced.config app.config) — , , , , . 24h(24 )
  • gc.interval (gc_interval advanced.config app.config) — , . 15m (15 ). , . , gc_interval infinity.
  • gc.retry_interval (gc_retry_interval advanced.config app.config) — , , pending_delete . - , , - . 6h (6 ).
  • gc.max_workers (gc.max_workers advanced.config app.config) — , . 2.
  • active_delete_threshold (active_delete_threshold en advanced.config o app.config): los bloques de objetos que son menores que el valor de umbral se eliminan sincrónicamente y sus manifiestos se marcan como Scheduled_delete . El valor predeterminado es 0.


Hay algunas configuraciones adicionales que solo se pueden establecer en los archivos de configuración advanced.config o app.config. Ninguna de las siguientes configuraciones está disponible a través del archivo de configuración riak-cs.conf



  • epoch_start — , . , + leeway_seconds. 0 . , , , . . Erlang. , 10, <<«10»>>.
  • initial_gc_delaygc_interval Riak CS. : GC ; GC. , initial_gc_delay.
  • max_scheduled_delete_manifests — ( ), scheduled_delete . , , . , , , leeway_seconds. , , . .
  • gc_batch_size : este parámetro representa el tamaño utilizado para paginar los resultados de una consulta de índice secundaria. El valor predeterminado es 1000.


Configuración desactualizada

Por el momento, Riak CS 2.0 todavía admite la configuración del parámetro pg_paginated_indexes, y se recomienda encarecidamente no utilizar esta configuración. La configuración se eliminará en la próxima versión principal.

Otras configuraciones de Riak CS



Para obtener una lista completa de los parámetros configurables de Riak CS, puede consultar el documento de referencia de configuración .



Enlaces



Almacenamiento en la nube de Riak. Parte 1. Configuración de Riak KV

Riak Cloud Storage. Parte 2. Configuración del componente Riak CS

Riak Cloud Storage. Parte 3. Stanchion, Proxy y Load Balancing, S3 Client



Manual original.



All Articles