diff --git a/docs/udelartex/anexo/anexoQueens.tex b/docs/udelartex/anexo/anexoQueens.tex index 9dcd77e5b29053ea66a358c839352246d02d67f7..cf9ae377b898d60364b4f6e67139c4ec50d4f991 100644 --- a/docs/udelartex/anexo/anexoQueens.tex +++ b/docs/udelartex/anexo/anexoQueens.tex @@ -572,7 +572,7 @@ horizon_images_upload_mode: "legacy" \noindent Si bien en \cite{openstack-settings-reference} se menciona que el valor por defecto de esta variable es \textsl{legacy}, durante el proceso de instalación se detectó que es configurada como \textsl{direct}. La diferencia entre estos modos es que \textsl{legacy} permite subir archivos locales desde la máquina del usuario al servidor web de Horizon y luego de este hacia el módulo Glance. Por su parte \textsl{direct} evita esta sobrecarga de red y almacenamiento en el servidor web, conectado a través de una API al usuario con el módulo Glance. Sin embargo, esto último requiere de configuraciones extras como tener acceso al puerto 9292 (API de Glance) y un correcto uso de CORS. -\subsubsection*{cinder.yml} +\subsubsection*{cinder-volume.yml} En caso de utilizar un backend de storage LVM se debe indicar que este debe ser desplegado en metal, para esto se debe configurar el archivo \path{/etc/openstack_deploy/env.d/cinder-volume.yml} con lo siguiente: \begin{lstlisting} diff --git a/docs/udelartex/anexo/anexoStein.tex b/docs/udelartex/anexo/anexoStein.tex index 38dcb94b5283ebda14c986e0cf19747a67b9e23a..5d0308d4bbae125c5b624d77ec838de15a2db72c 100644 --- a/docs/udelartex/anexo/anexoStein.tex +++ b/docs/udelartex/anexo/anexoStein.tex @@ -762,7 +762,7 @@ cinder_backends: \end{lstlisting} -\subsection*{cinder.yml} +\subsection*{cinder-volume.yml} \noindent En este caso el despliegue de Ceph se debe indicar que no será en metal dado que se crearan los OSDs en los nodos de storage. \begin{lstlisting} container_skel: diff --git a/docs/udelartex/bibliografia/biblio.bib b/docs/udelartex/bibliografia/biblio.bib index cb2aa5c064988dd130522abe687317ba761d0b91..5386e2c732eab7a2f6e2a775ccce563a35219721 100644 --- a/docs/udelartex/bibliografia/biblio.bib +++ b/docs/udelartex/bibliografia/biblio.bib @@ -432,10 +432,54 @@ note = {Accedido: 2020-01-08} @Misc{openstack-ssh-between-compute, title = {Configure SSH between compute nodes}, author = {OpenStack}, - howpublished = {\url{https://docs.openstack.org/nova/stein/admin/ssh-configuration.html#cli-os-migrate-cfg-ssh}}, + howpublished = {\url{https://docs.openstack.org/nova/stein/admin/ssh-configuration.html}}, note = {Accedido: 2020-01-22} } +@Misc{openstack-queens-scaling-env, + title = {Scaling your environment}, + author = {OpenStack}, + howpublished = {\url{https://docs.openstack.org/openstack-ansible/queens/admin/scale-environment.html}}, + note = {Accedido: 2020-01-24} +} + +@Misc{openstack-stein-scaling-env, + title = {Scaling your environment}, + author = {OpenStack}, + howpublished = {\url{https://docs.openstack.org/openstack-ansible/stein/admin/scale-environment.html}}, + note = {Accedido: 2020-01-24} +} + +@Misc{openstack-minor-upgrade, + title = {Minor version upgrade}, + author = {OpenStack}, + howpublished = {\url{https://docs.openstack.org/openstack-ansible/stein/admin/upgrades/minor-upgrades.html}}, + note = {Accedido: 2020-01-24} +} + +@Misc{openstack-rocky-upgrade, + title = {Major upgrades}, + author = {OpenStack}, + howpublished = {\url{https://docs.openstack.org/openstack-ansible/rocky/admin/upgrades/major-upgrades.html}}, + note = {Accedido: 2020-01-25} +} + +@Misc{openstack-train-upgrade, + title = {Major upgrades}, + author = {OpenStack}, + howpublished = {\url{https://docs.openstack.org/openstack-ansible/train/admin/upgrades/major-upgrades.html}}, + note = {Accedido: 2020-01-25} +} + + +@Misc{openstack-bug-memcached, + title = {Flush all of the cache in membached issue}, + author = {OpenStack}, + howpublished = {\url{https://bugs.launchpad.net/openstack-ansible/+bug/1783423}}, + note = {Accedido: 2020-01-25} +} + + @Misc{ansible-modules, title = {Module Index}, author = {Ansible}, diff --git "a/docs/udelartex/capitulos/dise\303\261o.tex" "b/docs/udelartex/capitulos/dise\303\261o.tex" index 641e2168ad555e3abe38e343e99cf96b851b2956..3ab92f8658d20c0b19c63ab70da3847e209f8228 100644 --- "a/docs/udelartex/capitulos/dise\303\261o.tex" +++ "b/docs/udelartex/capitulos/dise\303\261o.tex" @@ -147,7 +147,7 @@ En una arquitectura estándar de producción el router TOR físico podría actua \subsection{Distribución de los servicios} Una de las principales características de OpenStack-Ansible es el despliegue de servicios en contenedores. Esto permite escalar horizontalmente los mismos de una forma sencilla evitando la complejidad de utilizar servidores físicos o máquinas virtuales y proporcionan una alta disponibilidad. Mas allá de la facilidad de utilizar contenedores, ciertos servicios continúan teniendo un mejor rendimiento cuando corren directamente sobre el host físico, como por ejemplo Nova, en donde los servicios asociados a dicho módulo utilizan un hipervisor para crear nuevas instancias. -En cuanto a los servicios a desplegar, los administradores pueden optar por cuales instalar dentro de los opcionales y de que forma con la finalidad de crear un ambiente que se adapte a las necesidades de cada caso. Dicho esto, un aspecto fundamental en todos los servicios y en especial sobre los que interactúan directamente los usuarios finales es la alta disponibilidad. +En cuanto a los servicios a desplegar, los administradores pueden optar por cuáles instalar dentro de los opcionales y de qué forma con la finalidad de crear un ambiente que se adapte a las necesidades de cada caso. Dicho esto, un aspecto fundamental en todos los servicios y en especial sobre los que interactúan directamente los usuarios finales es la alta disponibilidad. En este trabajo los servicios que se desplegaron directamente sobre los hosts físicos son los relacionados con Neutron y Nova debido a que agregar una capa de abstracción como son los contenedores no es favorable en ninguno de los casos ya sea por los hipervisores o los recursos de red, en donde ambos requieren tener una comunicación directa con el kernel de Linux. Finalmente los servicios se encuentran distribuidos de la siguiente forma:\\ \textbf{Nodo de infraestructura}\\ diff --git a/docs/udelartex/capitulos/gestion.tex b/docs/udelartex/capitulos/gestion.tex index a18c119b92749b2b01376a2074f749545451681a..a17115a6a88d900880d00531ae663263762d1114 100644 --- a/docs/udelartex/capitulos/gestion.tex +++ b/docs/udelartex/capitulos/gestion.tex @@ -1,14 +1,14 @@ \chapter{Gestión del Datacenter} -En este capítulo se detallan un conjunto de tareas de gestión del Datacenter implementado con OpenStack. Estas tareas deben ser realizadas por los usuarios con el rol de administrador del Datacenter. En las siguientes secciones se analiza cómo agregar o remover nodos físicos al Datacenter, cómo recuperarse ante posibles fallas y cómo realizar una actualización de versión de OpenStack. +En este capítulo se detallan un conjunto de tareas de gestión del Datacenter implementado con OpenStack. Estas tareas deben ser realizadas por los usuarios con rol de administrador dentro de la plataforma. En las siguientes secciones se analiza cómo agregar o remover nodos físicos al Datacenter, cómo recuperarse ante posibles fallas y cómo realizar una actualización de versión de OpenStack. \section{Recuperación ante fallas} -Ante la presencia de problemas como puede ser un corte de energía en un grupo de servidores o en la totalidad de los mismos, o bien alguna funcionalidad de OpenStack no responde de forma correcta, será necesaria la participación del administrador del sistema para detectar y solucionar el problema. A continuación se presentan una serie de secciones a modo de guía para que el administrador lleve a cabo los objetivos mencionados. +Ante la presencia de problemas en los nodos del Datacenter, como por ejemplo un corte de energía o un mal funcionamiento de algún servicio de OpenStack, será necesaria la participación del administrador del sistema para detectar y solucionar el problema. A continuación se presentan una serie de secciones a modo de guía para que el administrador responda ante los inconvenientes mencionados. -\subsection{Verificar el estado general de OpenStack} +\subsection{Verificación general} En la instalación de OSA se despliega el container utility en los nodos de infraestructura, el cual provee de una CLI para realizar cambios, instanciar recursos o simplemente verificar las funcionalidades. Para esto se accede a cualquier nodo del tipo mencionado y se siguen los pasos indicados en \cite{openstack-verify-cloud}. En resumen lo que intenta realizar la guía referenciada es ejecutar comandos que involucren a todos los servicios desplegados de OpenStack, haciendo especial hincapié en el estado de los endpoints de los distintos módulos. -\subsection{Verificar estado de los componentes de la infraestructura} -Los servicios subyacentes de infraestructura que permiten el funcionamiento de OpenStack se deben verificar y mantener regularmente. La guía \cite{openstack-maintenance-tasks} muestra en detalle cómo realizar estas tareas para el cluster de galera, el cluster de RabbitMQ y firewall para los nodos físicos. Para la detección de problemas de destacan los siguientes comandos: +\subsection{Tareas de mantenimiento} +Los servicios subyacentes de infraestructura que permiten el funcionamiento de OpenStack se deben verificar y mantener regularmente. La guía \cite{openstack-maintenance-tasks} muestra en detalle cómo realizar estas tareas para el cluster de Galera, el cluster de RabbitMQ y el firewall de los nodos físicos. Para la detección de problemas de destacan los siguientes comandos: \begin{itemize} \item Revisar el estado del cluster de galera desde el nodo de deploy: @@ -34,29 +34,29 @@ Los servicios subyacentes de infraestructura que permiten el funcionamiento de O \end{itemize} -\subsection{Solucionar problemas} +\subsection{Solución de problemas} En este caso se hace referencia a la guía \cite{openstack-troubleshooting} orientada a resolver problemas operacionales, como pueden ser inconvenientos en la comunicacion entre hosts en alguna de las subredes del ambiente de OSA, problemas de conectividad de alguna instancia o problemas con algún servicio de OpenStack. La sección para esto último resulta útil ya que lista todos los servicios existentes para cada módulo de OpenStack y en qué nodo físico se ubican. \subsection{Problemas con Ceph} -La ventaja de tener un backend como Ceph para cinder es que está diseñado para soportar la falla de alguno de sus nodos, dependiendo de cuantos OSDs se tengan configurados. Por lo tanto si algún nodo sufre una falla de hardware o tiene otro problema externo como un corte de energía, los usuarios del Datacenter no percibirán problema alguno. -Además de los problemas críticos mencionados, se pueden presentar inconvenientes en el funcionamiento del cluster realizado con Ceph. Para diagnosticar y solucionar estos problemas se toman los documentos oficiales de la herramienta que se pueden encontrar en \cite{ceph-cluster-operations} presentando guiás para: realizar el monitoreo del cluster, OSDs y PGs, llevar a cabo operaciones sobre el cluster, realizar un troubleshooting sobre el monitor u OSDs, entre otras. +La ventaja de tener un backend como Ceph para Cinder es que está diseñado para soportar la falla de alguno de sus nodos, dependiendo de cuantos OSDs se tengan configurados. Por lo tanto si algún nodo sufre una falla de hardware o tiene otro problema externo como un corte de energía, los usuarios del Datacenter no percibirán problema alguno. +Además de los problemas críticos mencionados, se pueden presentar inconvenientes en el funcionamiento del cluster realizado con Ceph. Para diagnosticar y solucionar estos problemas se toman los documentos oficiales de la herramienta que se pueden encontrar en \cite{ceph-cluster-operations} presentando guias para: realizar el monitoreo del cluster, OSDs y PGs, llevar a cabo operaciones sobre el cluster, realizar una evaluación de problemas sobre los monitores u OSDs, entre otras. \noindent Algunos de los comandos utilizados se muestran a continuación: \begin{itemize} \item Ver el estado del cluster desde el contenedor \path{ceph_mon}: \begin{lstlisting} -# ceph health o ceph health detail +# ceph health [detail] \end{lstlisting} \item Desde los nodos OSD: \begin{itemize} \item Ver el status de todos los demonios: \begin{lstlisting} -# systemctl status ceph\*.service ceph\*.target +# systemctl status ceph*.service ceph*.target \end{lstlisting} \item Parar todos los demonios: \begin{lstlisting} -# systemctl stop ceph\*.service ceph\*.target +# systemctl stop ceph*.service ceph*.target \end{lstlisting} \item Arrancar todos los demonios: @@ -200,30 +200,26 @@ Retomando la acción principal, luego de migrar todas las instancias del nodo de \item Finalmente actualizar el archivo \path{openstack_user_config.yml}, eliminando la entrada del nodo de cómputo removido. \end{itemize} -\subsection{Infraestructura} -Agregar nodos de infraestructura es una tarea compleja y sensible debido a todas las tareas que involucra y las estructuras que modifica como son los clusters, la creación de nuevos contenedores y la posterior sincronización con los existentes, la actualización de los balanceadores de carga, entre otros. A continuación se explica el proceso realizado para la versión Queens y luego para la Stein.\\ +\subsection{Agregar nodo de Infraestructura} +Agregar nodos de infraestructura es una tarea compleja y sensible debido a todas las tareas que involucra, como por ejemplo modificación de estructuras, creación de nuevos contenedores y la posterior sincronización con los existentes, actualización de los balanceadores de carga, entre otros. A continuación se explica el proceso realizado para la versión Queens y luego para la Stein. -\noindent\textbf{Versión Queens} +\subsubsection*{Versión Queens} + +Para agregar un nodo de infraestructura se utilizó la guía del documento \cite{openstack-queens-scale-env}. Antes de comenzar se debe configurar el nuevo nodo tal como se indica en la preparación de nodos del anexo \ref{anexoQueens}. Luego desde el nodo deploy se deben seguir los siguientes pasos: -Para agregar un nodo de infraestructura se utilizó la guía del documento [\path{https://docs.openstack.org/openstack-ansible/queens/admin/scale-environment.html#add-a-compute-host}]. -Pasos en el nuevo nodo: -\begin{itemize} - \item Crear un nodo análogo al nodo de infraestructura modificando las IPs de sus interfaces. - \item Modificar las reglas de firewall como se indica en los pasos a seguir en la preparación de nodos [\ref{anexoQueens}]. -\end{itemize} -Pasos en el nodo deploy: \begin{itemize} -\item Verificar el acceso por SSH desde el nodo de deploy. -\item Se realiza el ssh-copy-id desde el nodo deploy + \item Verificar el acceso por SSH al nuevo nodo, en caso de no contar con él, utilizar: \begin{lstlisting} -[root@deploy ~]# ssh-copy-id 10.0.1.21 +# ssh-copy-id <IP_nuevo_nodo> \end{lstlisting} -\item Se respalda la instalación actual: + + \item Respaldar la instalación actual: \begin{lstlisting} -$ source_series_backup_file="/openstack/backup-openstack-ansible-stein.tar.gz" -$ tar zcf ${source_series_backup_file} /etc/openstack_deploy /etc/ansible/ /usr/local/bin/openstack-ansible.rc +# source_series_backup_file="/openstack/backup-openstack-ansible-stein.tar.gz" +# tar zcf ${source_series_backup_file} /etc/openstack_deploy /etc/ansible/ /usr/local/bin/openstack-ansible.rc \end{lstlisting} -\item Se agrega el nuevo nodo a la playbook principal \path{/etc/openstack_deploy/openstack_user_config.yml}: + + \item Agregar el nuevo nodo a la playbook principal \path{/etc/openstack_deploy/openstack_user_config.yml}: \begin{lstlisting} ### ### Infrastructure @@ -233,56 +229,47 @@ _infrastructure_hosts: &infrastructure_hosts infra1: ip: 10.0.1.11 infra2: - ip: 10.0.1.21 + ip: <IP_nuevo_nodo> \end{lstlisting} -\item Posicionarse en el directorio de playbooks con '\$ cd /opt/openstack-ansible/playbooks' -\item Actualizar el inventario de nodos: + + \item Actualizar el inventario de nodos: \begin{lstlisting} -$ /opt/openstack-ansible/inventory/dynamic_inventory.py > /dev/null +# /opt/openstack-ansible/inventory/dynamic_inventory.py > /dev/null \end{lstlisting} -\item Crear el archivo \path{/root/add_host.limit} con el siguiente contenido (localhost, el nuevo nodo y los containers):\\ -localhost\\ -infra2\\ -infra2-host\_containers + \item Crear el archivo \path{/root/add_host.limit} con el siguiente contenido: +\begin{lstlisting} +localhost +infra2 +infra2-host_containers +\end{lstlisting} -\item Ejecutar la playbook guardando el log: + \item Ejecutar la playbook al igual que en el proceso de instalación: \begin{lstlisting} -$ openstack-ansible -vvv setup-everything.yml --limit @/root/add_host.limit 2>&1 | tee /var/log/openstack/new_infra.log +# cd /opt/openstack-ansible/playbooks +# openstack-ansible -vvv setup-everything.yml --limit @/root/add_host.limit 2>&1 | tee /var/log/openstack/nuevo_infra.log \end{lstlisting} + \end{itemize} -En la ejecución de la playbooks surgieron múltiples problemas relacionados con los distintos clusters, con el servidor de repositorio, entre otros, imposibilitando culminar con el proceso correctamente y por lo tanto no se pudo lograr agregar un nodo de infraestructura al Datacenter.\\ +Durante la ejecución de la playbook final surgieron múltiples problemas relacionados con los distintos clusters y con el servidor de repositorio, entre otros. Esto imposibilitó culminar con el proceso correctamente y por lo tanto no se pudo lograr agregar un nodo de infraestructura al Datacenter. -\noindent\textbf{Versión Stein} +\subsubsection*{Versión Stein} + +En este caso se utilizó la misma guía de referencia pero actualizada para la nueva versión \cite{openstack-stein-scaling-env}. En este caso se debe configurar el nuevo nodo siguiendo los pasos de la preparación de nodos del anexo \ref{anexoStein}. Luego desde el nodo deploy se realizan las siguientes configuraciones: -Para esta versión se utilizó la siguiente guía de referencia [\path{https://docs.openstack.org/openstack-ansible/queens/admin/scale-environment.html#add-a-compute-host}]. -Pasos en el nuevo nodo: -\begin{itemize} -\item Crear un nodo análogo al nodo de infraestructura modificando las IPs de sus interfaces. -\item Modificar las reglas de firewall como se indica en los pasos a seguir en la preparación de nodos [\ref{anexoQueens}]. -\item Se agrega el veth pair: -\begin{lstlisting} -$ ip link add dev br-vlan-veth type veth peer name eth12 -$ ip link set eth12 up -$ ip link set br-vlan-veth up -$ brctl addif br-vlan br-vlan-veth -$ service network restart -\end{lstlisting} -\end{itemize} -Pasos en el nodo deploy: \begin{itemize} -\item Verificar el acceso por SSH desde el nodo de deploy. -\item Se realiza el ssh-copy-id desde el nodo deploy + \item Verificar el acceso por SSH al nuevo nodo, en caso de no contar con él, utilizar: \begin{lstlisting} -[root@deploy ~]# ssh-copy-id 10.0.10.21 +[root@deploy ~]# ssh-copy-id <IP_nuevo_nodo> \end{lstlisting} -\item Se respalda la instalación actual: + + \item Respaldar la instalación actual: \begin{lstlisting} -$ source_series_backup_file="/openstack/backup-openstack-ansible-stein.tar.gz" -$ tar zcf ${source_series_backup_file} /etc/openstack_deploy /etc/ansible/ usr/local/bin/openstack-ansible.rc +# source_series_backup_file="/openstack/backup-openstack-ansible-stein.tar.gz" +# tar zcf ${source_series_backup_file} /etc/openstack_deploy /etc/ansible/ usr/local/bin/openstack-ansible.rc \end{lstlisting} -\item Se agrega el nuevo nodo a la playbook principal \path{/etc/openstack_deploy/openstack_user_config.yml}: + \item Agregar el nuevo nodo a la playbook principal \path{/etc/openstack_deploy/openstack_user_config.yml}: \begin{lstlisting} ### ### Infrastructure @@ -291,168 +278,199 @@ _infrastructure_hosts: &infrastructure_hosts infra1: ip: 10.0.10.11 infra2: - ip: 10.0.10.21 + ip: <IP_nuevo_nodo> \end{lstlisting} -\item Posicionarse en el directorio de playbooks con '\$ cd opt/openstack-ansible/playbooks' -\item Actualizar el inventario de nodos: + + \item Actualizar el inventario de nodos: \begin{lstlisting} -$ /opt/openstack-ansible/inventory/dynamic_inventory.py > /dev/null +# /opt/openstack-ansible/inventory/dynamic_inventory.py > /dev/null \end{lstlisting} -\item Crear el archivo \path{/root/add_host.limit} con el siguiente contenido (localhost, el nuevo nodo y los containers):\\ -localhost\\ -infra2\\ -infra2-host\_containers\\ -rabbit\_mq\_container\\ -ceph-mon\_container\\ -keystone\_container + \item Crear el archivo \path{/root/add_host.limit} con el siguiente contenido: +\begin{lstlisting} +localhost +infra2 +infra2-host_containers +rabbit_mq_container +ceph-mon_container +keystone_container +\end{lstlisting} -\item Ejecutar la playbook guardando el log: + \item Ejecutar la playbook al igual que en el proceso de instalación: \begin{lstlisting} -$ openstack-ansible -vvv setup-everything.yml --limit @/root/add_host.limit >&1 | tee /var/log/openstack/new_infra.log +# cd /opt/openstack-ansible/playbooks +# openstack-ansible -vvv setup-everything.yml --limit @/root/add_host.limit >&1 | tee /var/log/openstack/nuevo_infra.log \end{lstlisting} \end{itemize} -En la ejecución de la playbooks surgieron múltiples problemas relacionados on los distintos clusters, con el servidor de repositorio, entre otros, imposibilitando culminar con el proceso correctamente y por lo tanto no se pudo lograr agregar un nodo de infraestructura al Datacenter. -\section{Actualizar versión} -Al igual qe en las tareas previas se explica el proceso para ambas versiones utilizadas de OpenStack. Se explican los procedimientos realizados para llevar a cabo las actualizaciones de versiones mayores, mencionando los problemas que surgieron en el proceso y sus respectivas soluciones. Las actualización solamente pueden ser realizadas entre liberaciones secuenciales. Dado que en el trabajo fueron utilizadas las versiones Queens y Stein se presenta una subsección para cada de estas. -Por otro lado, las correcciones que se realizan dentro una versión se refieren como actualizaciones menores. Estas últimas no serán presentadas pero en [\path{https://docs.openstack.org/openstack-ansible/stein/admin/upgrades/minor-upgrades.html}] se detalla el proceso para llevarlas a cabo. +En esta versión sí fue posible finalizar el proceso con éxito. Cabe resaltar que en la documentación oficial, a la hora de configurar el archivo \path{/root/add_host.limit} no se mencionan los contenedores de RabbitMQ, Ceph y Keystone, sin embargo fue necesario agregarlos para que se comunicaran y configuraran correctamente junto con los ya creados en los nodos de infraestructura anteriores. + +\section{Actualización de versión} +Al igual que en las tareas previas se explica el proceso para ambas versiones utilizadas de OpenStack. Se detallan los procedimientos realizados para llevar a cabo las actualizaciones de versiones mayores, mencionando los problemas que surgieron en el proceso y sus respectivas soluciones. Estas actualizaciones solamente pueden ser realizadas entre liberaciones secuenciales. Dado que en el trabajo fueron utilizadas las versiones Queens y Stein se presenta una subsección para cada de estas. Por otro lado, las correcciones que se realizan dentro una versión se refieren como actualizaciones menores. Estas últimas no serán presentadas pero el proceso para llevarlas a cabo es detallado en \cite{openstack-minor-upgrade}. + +\subsection*{Queens a Rocky} +En este caso se especifica cómo actualizar de la versión Queens a Rocky, siguiendo la guía \cite{openstack-rocky-upgrade}. En esta última se muestran dos opciones para realizar la actualización: mediante un script o en forma manual. Es sumamente importante resaltar que estos procesos de actualización se encuentra en constante desarrollo y por lo tanto se recomienda probar el procedimiento en un ambiente de desarrollo. -\subsubsection*{Queens a Rocky} -En este caso se muestra como actualizar de la versión de Queens a Rocky. Siguiendo la guía [\path{https://docs.openstack.org/openstack-ansible/rocky/admin/upgrades/major-upgrades.html}] se muestran dos opciones para realizar la actualización: mediante un script o en forma manual. Una alerta que se muestra en el documento de referencia utilizado es que las actualizaciones se encuentran en constante desarrollo por lo tanto se recomienda testear el procedimiento en un ambiente de desarrollo. +\subsubsection*{Actualizar mediante un script} +En este caso se deben seguir los siguientes pasos: -\textbf{Actualizar mediante un script} -Para actualizar de versión siguiente este método se tiene que seguir los siguientes pasos: \begin{itemize} - \item Acceder al directorio raíz del repositorio: \$ cd /opt/openstack-ansible - \item Moverse al último tag estable de la versión a actualizar, en este caso la última liberación de Rocky es la 18.1.16:\\ - \$ git checkout 18.1.16 - \item Ejecutar el script:\\ - \$ ./scripts/run-upgrade.sh + \item Acceder al directorio raíz del repositorio: +\begin{lstlisting} +# cd /opt/openstack-ansible +\end{lstlisting} + + \item Moverse al último tag estable de la versión a actualizar, en este caso la última liberación de Rocky es la 18.1.16: +\begin{lstlisting} +# git fetch +# git checkout 18.1.16 +\end{lstlisting} + + \item Ejecutar el script: +\begin{lstlisting} +# ./scripts/run-upgrade.sh +\end{lstlisting} \end{itemize} -Al utilizar este método surgieron varios problemas que no permitieron completar satisfactoriamente el proceso de actualización. Para detectar con mayor precisión los problemas y poder solucionarlos se tuvo que utilizar el método manual. +Al utilizar este método surgieron varios problemas que no permitieron completar satisfactoriamente el proceso de actualización. Para detectar con mayor precisión los inconvenientes y poder solucionarlos se tuvo que utilizar el método manual. + +\subsubsection*{Actualizar en forma manual} +Los siguientes pasos se corresponden a cada uno de los comandos que se ejecutan en el script \path{run-upgrade.sh}. Para cada uno de ellos se muestran los inconvenientes que surgieron junto con sus respectivas soluciones. -\textbf{Actualizar en forma manual} -Los siguientes pasos se corresponden a cada uno de los comandos que se ejecutan en el script \path{]run-upgrade.sh}. A continuación se muestra cada uno, junto a los problemas que surgieron con las respectivas soluciones. \begin{enumerate} -\item Acceder a la última release estable de Rocky: + \item Posicionarse al directorio raíz del repositorio: +\begin{lstlisting} +# cd /opt/openstack-ansible +\end{lstlisting} + + \item Acceder a la última release estable de Rocky: \begin{lstlisting} -$ git checkout 18.1.16 +# git fetch +# git checkout 18.1.16 \end{lstlisting} -\item Definir variables a utilizar en la instalación: + \item Definir variables a utilizar en la instalación: \begin{lstlisting} -$ export MAIN_PATH="$(pwd)" -$ export SCRIPTS_PATH="${MAIN_PATH}/scripts" -$ export UPGRADE_PLAYBOOKS="${SCRIPTS_PATH}/upgrade-utilities/playbooks" +# export MAIN_PATH="$(pwd)" +# export SCRIPTS_PATH="${MAIN_PATH}/scripts" +# export UPGRADE_PLAYBOOKS="${SCRIPTS_PATH}/upgrade-utilities/playbooks" \end{lstlisting} -\item Remover variables del entorno existentes: + \item Remover variables del entorno existentes: \begin{lstlisting} -$ unset ANSIBLE_INVENTORY +# unset ANSIBLE_INVENTORY \end{lstlisting} -\item Preparar el ambiente para la nueva versión: + \item Preparar el ambiente para la nueva versión: \begin{lstlisting} -$ ${SCRIPTS_PATH}/bootstrap-ansible.sh +# ${SCRIPTS_PATH}/bootstrap-ansible.sh \end{lstlisting} -\item Acceder al directorio playbooks -\item Preparar el ambiente antes de ejecutar los principales script ejecutando los siguientes comandos: + \item Acceder al directorio playbooks +\begin{lstlisting} +# cd /opt/openstack-ansible/playbooks +\end{lstlisting} + + \item Preparar el ambiente antes de ejecutar los principales script ejecutando los siguientes comandos: \begin{lstlisting} -$ openstack-ansible "${UPGRADE_PLAYBOOKS}/ansible_fact_cleanup.yml" -$ openstack-ansible "${UPGRADE_PLAYBOOKS}/deploy-config-changes.yml" -$ openstack-ansible "${UPGRADE_PLAYBOOKS}/user-secrets-adjustment.yml" -$ openstack-ansible "${UPGRADE_PLAYBOOKS}/pip-conf-removal.yml" -$ openstack-ansible "${UPGRADE_PLAYBOOKS}/ceph-galaxy-removal.yml" -$ openstack-ansible "${UPGRADE_PLAYBOOKS}/molteniron-role-removal.yml" +# openstack-ansible "${UPGRADE_PLAYBOOKS}/ansible_fact_cleanup.yml" +# openstack-ansible "${UPGRADE_PLAYBOOKS}/deploy-config-changes.yml" +# openstack-ansible "${UPGRADE_PLAYBOOKS}/user-secrets-adjustment.yml" +# openstack-ansible "${UPGRADE_PLAYBOOKS}/pip-conf-removal.yml" +# openstack-ansible "${UPGRADE_PLAYBOOKS}/ceph-galaxy-removal.yml" +# openstack-ansible "${UPGRADE_PLAYBOOKS}/molteniron-role-removal.yml" \end{lstlisting} -\item Antes de instalar la infraestructura y OpenStack es necesario actualizar los hosts físicos: + \item Antes de instalar la infraestructura y OpenStack es necesario actualizar los nodos físicos: \begin{lstlisting} -$ openstack-ansible setup-hosts.yml --limit '!galera_all:!rabbitmq_all' +# openstack-ansible setup-hosts.yml --limit '!galera_all:!rabbitmq_all' \end{lstlisting} -Se excluyen los grupos de galera y rabbitmq para que los cluster no sufran modificaciones o reseteos. +Se excluyen los grupos de Galera y RabbitMQ para que los cluster no sufran modificaciones o reseteos. -\item Por la excepción indicada en el paso anterior es necesario actualizar los contenedores correspondientes a galera y RabbitMQ independientemente: + \item Por la excepción indicada en el paso anterior es necesario actualizar los contenedores correspondientes a Galera y RabbitMQ de forma independiente: \begin{lstlisting} -$ openstack-ansible lxc-containers-create.yml -e \ +# openstack-ansible lxc-containers-create.yml -e \ 'lxc_container_allow_restarts=false' --limit 'galera_all:rabbitmq_all' \end{lstlisting} -\item Para que la configuración aplicada en el paso anterior tome efecto es necesario ejecutar el siguiente comando: + \item Para que la configuración aplicada en el paso anterior tome efecto es necesario ejecutar el siguiente comando: \begin{lstlisting} -$ openstack-ansible "${UPGRADE_PLAYBOOKS}/galera-cluster-rolling-restart.yml" +# openstack-ansible "${UPGRADE_PLAYBOOKS}/galera-cluster-rolling-restart.yml" \end{lstlisting} -\item Actualizar la configuración de los servidores de repositorio: + \item Actualizar la configuración de los servidores de repositorio: \begin{lstlisting} -$ openstack-ansible repo-install.yml +# openstack-ansible repo-install.yml \end{lstlisting} -\item Actualizar la configuración del HAproxy: + \item Actualizar la configuración del HAproxy: \begin{lstlisting} -$ openstack-ansible haproxy-install.yml +# openstack-ansible haproxy-install.yml \end{lstlisting} -\item Luego de actualizar el servidor de repositorio se puede utilizar: + \item Luego de actualizar el servidor de repositorio se puede utilizar: \begin{lstlisting} -$ openstack-ansible repo-use.yml +# openstack-ansible repo-use.yml \end{lstlisting} -\item Actualiza la versión de MariaDB: + \item Actualizar la versión de MariaDB: \begin{lstlisting} -$ openstack-ansible galera-install.yml -e 'galera_upgrade=true' +# openstack-ansible galera-install.yml -e 'galera_upgrade=true' \end{lstlisting} -\item Actualizar la infraestructura: + \item Actualizar la infraestructura: \begin{lstlisting} -$ openstack-ansible unbound-install.yml -$ openstack-ansible memcached-install.yml -$ openstack-ansible rabbitmq-install.yml -e 'rabbitmq_upgrade=true' -$ openstack-ansible etcd-install.yml -$ openstack-ansible utility-install.yml -$ openstack-ansible rsyslog-install.yml - +# openstack-ansible unbound-install.yml +# openstack-ansible memcached-install.yml +# openstack-ansible rabbitmq-install.yml -e 'rabbitmq_upgrade=true' +# openstack-ansible etcd-install.yml +# openstack-ansible utility-install.yml +# openstack-ansible rsyslog-install.yml \end{lstlisting} -\item Limpiar todo el cache en Memcached: + \item Limpiar todo el cache en Memcached: \begin{lstlisting} -$ openstack-ansible "${UPGRADE_PLAYBOOKS}/memcached-flush.yml" +# openstack-ansible "${UPGRADE_PLAYBOOKS}/memcached-flush.yml" \end{lstlisting} -\item Actualizar OpenStack: + \item Actualizar OpenStack: \begin{lstlisting} -$ openstack-ansible setup-openstack.yml +# openstack-ansible setup-openstack.yml \end{lstlisting} \end{enumerate} Los problemas que ocurrieron en la ejecución de estos pasos se listan a continuación: \begin{itemize} -\item En el paso 7 se obtiene el siguiente mensaje de error: "msg": "Failure talking to yum: Cannot find a valid baseurl for repo: base/7/x86\_64". Investigando se llegó a que el archivo de /etc/yum.conf de los contenedores tenia configurado el \path{proxy=http://10.0.1.15:3142} indicando que se utilice el servidor de repositorios local. Para solucionarlo se modificó dicha variable en todos los contenedores del servidor de infraestructura. + \item En el paso 8 se obtiene el siguiente mensaje de error: +\begin{lstlisting} +"msg": "Failure talking to yum: Cannot find a valid baseurl for repo: base/7/x86\_64" +\end{lstlisting} + Luego de investigar el problema, se llegó a que la raíz del mismo era que el archivo \path{/etc/yum.conf} de los contenedores tenía configurada la variable \path{proxy=http://10.0.1.15:3142} indicando que se utilice el servidor de repositorios local. Esto genera un inconveniente similar al descrito en la sección \ref{sec:osa-inconvenientes}. Para solucionarlo se modificó dicha variable en todos los contenedores del servidor de infraestructura, generando que se obtengan los repositorios de yum sin pasar por el proxy local. -\item En el paso 13 en donde se actualiza el MariaDB, a grandes rasgos lo que realiza es bajar el servicio, actualizar el MariaDB y luego continua haciendo modificaciones en la base. El problema es que el script no vuelve a iniciar el servicio de de bases de datos y por lo tanto al querer realizar cualquier operación sobre la base retorna un error. Para solucionarlo en el momento que finaliza la actualización en forma manual se inicializa el servicio mencionado en el contenedor de galera con el siguiente comando: \$ service mysql start. + \item En el paso 14 en donde se actualiza MariaDB, a grandes rasgos lo que realiza es bajar el servicio, actualizar MariaDB y luego continuar haciendo modificaciones en la base de datos. El problema es que el script no vuelve a iniciar el servicio de bases de datos y por lo tanto al querer realizar cualquier operación sobre la misma retorna un error. Para solucionarlo en el momento que finaliza la actualización en forma manual se inicializa el servicio mencionado en el contenedor de galera con el siguiente comando: +\begin{lstlisting} +# service mysql start +\end{lstlisting} -\item En el paso 15 se obtuvo un error debido a que el script proporcionado está pensado para ejecutar sobre un sistema Ubuntu, no contemplado que el archivo que se requiere parsear tiene un formato distinto en el sistema CentOS. Este bug fue reportado en [\path{https://bugs.launchpad.net/openstack-ansible/+bug/1783423}]. La solución fue cambiar el código de la última task en la playbook: + \item En el paso 16 se obtuvo un error debido a que el script proporcionado está pensado para ejecutar sobre un sistema Ubuntu, no contemplando que el archivo que se requiere parsear tiene un formato distinto en el sistema CentOS. Este bug fue reportado en \cite{openstack-bug-memcached} y la solución al mismo fue cambiar el código de la última task en la playbook \path{/opt/openstack-ansible/scripts/upgrade-utilities/playbooks/memcached-flush.yml} por los siguientes comandos: \begin{lstlisting} -/opt/openstack-ansible/scripts/upgrade-utilities/playbooks/memcached-flush.yml por los siguientes comandos: echo 'flush_all' | nc $(awk -F '-l' '/^OPTIONS/ {print $2}' {{ memcached_conf_dest.get(ansible_os_family | lower) }} | awk '{ print $1 }') $(awk -F '"' '/^PORT/ {print $2}' {{ memcached_conf_dest.get(ansible_os_family | lower) }} ) \end{lstlisting} \end{itemize} \section*{Conclusiones} -Recapitulando todas las operaciones descritas en este capitulo podemos sacar varias conclusiones: +Repasando todas las operaciones descritas en este capitulo es posible sacar varias conclusiones: + \begin{itemize} -\item La presencia de fallas es algo que siempre hay que contemplar y en el caso de un Datacenter es primordial la celeridad y la conservación de los datos. Para lograr esto se deben tener políticas de respaldo tanto para el cluster de Galera y los almacenamientos de bloque. Por otro lado para restablecer el servicio como se describió en el capítulo puede requerir de una secuencia considerable de comandos o verificaciones, por lo tanto lo mejor es tener scripts para automatizar estas tareas ganando tiempo y consistencia. + \item La presencia de fallas es algo que siempre hay que contemplar y más aún en el caso de un Datacenter donde la resiliencia y la conservación de los datos son aspectos primordiales. Para lograr esto se deben tener políticas de respaldo tanto para el cluster de Galera como los almacenamientos de bloque. Por otro lado, el reestablecimiento del servicio como se describió en el capítulo puede requerir de una secuencia considerable de comandos o verificaciones, por lo tanto es recomendable tener scripts que automaticen estas tareas ganando tiempo y consistencia. -\item Por el lado de las modificaciones en el Datacenter tanto para escalarlo horizontalmente o actualizar la versión utilizada queda evidenciada a lo largo del capitulo la complejidad y los riesgos que conlleva realizar este tipo de tareas. Por esto siempre es recomendable realizar las tareas en un ambiente de desarrollo para evitar la mayor cantidad de problemas. + \item En cuanto a realizar modificaciones a la plataforma, tanto para escalarlo horizontalmente como para actualizar la versión utilizada, queda evidenciada a lo largo del capitulo la complejidad y los riesgos que conlleva realizar este tipo de tareas. Por esto siempre es recomendable probar los procedimientos en un ambiente de desarrollo para mitigar la mayor cantidad de inconvenientes que puedan surgir. -\item Alejarse de lo estándar como se realizó en este trabajo al utilizar como backend de almacenamiento Ceph puede presentar algunas complicaciones particulares de la tecnología o algún requerimiento para la misma en el proyecto OSA, como por ejemplo ocurrió al intentar actualizar de versión en donde se requiere que existan al menos 3 monitors en el cluster de Ceph. + \item OSA es una plataforma compleja en sí misma, si además se utilizan otras tecnologías para mejorar su funcionamiento, como por ejemplo Ceph en el backend de almacenamiento, es necesario considerar que se introduciran complejidades propias de estas tecnologías. Esto puede implicar modificaciones en OSA para que exista compatibilidad o incluso requerimientos extras en procesos estándares como ocurre al realizar una actualización de versión utilizando Ceph. -\item Nuevamente se puede apreciar como junto a la evolución de OpenStack muchos de los problemas de las versiones anteriores son solucionados brindando mayor consistencia a los procesos. + \item Nuevamente se puede apreciar como junto a la evolución de OpenStack muchos de los problemas de las versiones anteriores son solucionados brindando mayor consistencia a los procesos. \end{itemize} diff --git a/docs/udelartex/capitulos/openstack-ansible.tex b/docs/udelartex/capitulos/openstack-ansible.tex index 55b54d70d04c4f03acb7776630ca901a27b085cd..273ffaf26da712256f29d15085cb24d436c47b75 100644 --- a/docs/udelartex/capitulos/openstack-ansible.tex +++ b/docs/udelartex/capitulos/openstack-ansible.tex @@ -196,7 +196,7 @@ $ openstack network agent list \end{enumerate} -\section{Inconvenientes} +\section{Inconvenientes}\label{sec:osa-inconvenientes} Durante los procesos de instalación de OSA en las versiones utilizadas y en las distintas operaciones de gestión surgieron varios problemas para los cuales se tuvieron que aplicar algunos cambios con el objetivo de encontrar una solución. Algunos de los inconvenientes presentados ocurrieron en la instalación de Queens (anexo \ref{anexoQueens}) mientras que otros son problemas generales. \subsection*{Bloqueo de paquetes} diff --git a/docs/udelartex/tesis.bbl b/docs/udelartex/tesis.bbl index 819ad767990f579105fd71acdb1edf3b60daeaa7..b03a9b99b0c5bba2e37defd7daa90c061b34c5d3 100644 --- a/docs/udelartex/tesis.bbl +++ b/docs/udelartex/tesis.bbl @@ -225,7 +225,7 @@ OpenStack. OpenStack. \newblock Configure ssh between compute nodes. \newblock - \url{https://docs.openstack.org/nova/stein/admin/ssh-configuration.html#cli-os-migrate-cfg-ssh}. + \url{https://docs.openstack.org/nova/stein/admin/ssh-configuration.html}. \newblock Accedido: 2020-01-22. \bibitem{openstack-container-networking} @@ -268,6 +268,12 @@ OpenStack. \newblock \url{https://review.opendev.org/#/c/603860/}. \newblock Accedido: 2019-07-05. +\bibitem{openstack-bug-memcached} +OpenStack. +\newblock Flush all of the cache in membached issue. +\newblock \url{https://bugs.launchpad.net/openstack-ansible/+bug/1783423}. +\newblock Accedido: 2020-01-25. + \bibitem{openstack-obtain-images} OpenStack. \newblock Get images. @@ -316,6 +322,13 @@ OpenStack. \url{https://docs.openstack.org/openstack-ansible/latest/admin/maintenance-tasks.html}. \newblock Accedido: 2020-01-12. +\bibitem{openstack-rocky-upgrade} +OpenStack. +\newblock Major upgrades. +\newblock + \url{https://docs.openstack.org/openstack-ansible/rocky/admin/upgrades/major-upgrades.html}. +\newblock Accedido: 2020-01-25. + \bibitem{openstack-manage-flavors} OpenStack. \newblock Manage flavors. @@ -349,6 +362,13 @@ OpenStack. \newblock \url{https://docs.openstack.org/nova/stein/admin/migration.html}. \newblock Accedido: 2020-01-22. +\bibitem{openstack-minor-upgrade} +OpenStack. +\newblock Minor version upgrade. +\newblock + \url{https://docs.openstack.org/openstack-ansible/stein/admin/upgrades/minor-upgrades.html}. +\newblock Accedido: 2020-01-24. + \bibitem{openstack-networking-architecture} OpenStack. \newblock Network architectures. @@ -402,6 +422,13 @@ OpenStack. \url{https://docs.openstack.org/openstack-ansible/queens/reference/inventory/openstack-user-config-reference.html}. \newblock Accedido: 2019-06-20. +\bibitem{openstack-stein-scaling-env} +OpenStack. +\newblock Scaling your environment. +\newblock + \url{https://docs.openstack.org/openstack-ansible/stein/admin/scale-environment.html}. +\newblock Accedido: 2020-01-24. + \bibitem{openstack-using-openvswitch} OpenStack. \newblock Scenario - using open vswitch. diff --git a/docs/udelartex/tesis.blg b/docs/udelartex/tesis.blg index 82d492a1e1d85b76a84c08fc262b40f1dce3d5a2..1503905e79bb423da1abd3474d17ac78fec7ccb7 100644 --- a/docs/udelartex/tesis.blg +++ b/docs/udelartex/tesis.blg @@ -13,8 +13,9 @@ A level-1 auxiliary file: capitulos/red.aux A level-1 auxiliary file: capitulos/futuro.aux A level-1 auxiliary file: capitulos/conclusiones.aux Database file #1: bibliografia/biblio.bib +Warning--I didn't find a database entry for "openstack-queens-scale-env" Warning--to sort, need author or key in 802.1Q Warning--empty title in sp800-190 Warning--empty journal in crush Warning--empty booktitle in rados -(There were 4 warnings) +(There were 5 warnings) diff --git a/docs/udelartex/tesis.lof b/docs/udelartex/tesis.lof index 409571dda28f36344140d18620367c41fe847824..1fdf5cc4d4687ffa88758247e35a62c0b6339711 100644 --- a/docs/udelartex/tesis.lof +++ b/docs/udelartex/tesis.lof @@ -32,81 +32,81 @@ \contentsline {figure}{\numberline {6.5}{\ignorespaces Salida a Internet en los nodos de Openstack.\relax }}{62}{figure.caption.70}% \addvspace {10\p@ } \addvspace {10\p@ } -\contentsline {figure}{\numberline {8.1}{\ignorespaces Diagrama de arquitectura para el escenario 1 de Linux Bridge\relax }}{85}{figure.caption.92}% -\contentsline {figure}{\numberline {8.2}{\ignorespaces Paquete ARP request capturado en la interfaz eth0 de la instancia 1\relax }}{90}{figure.caption.95}% -\contentsline {figure}{\numberline {8.3}{\ignorespaces Paquete ARP request encapsulado en VXLAN capturado en la interfaz br-vxlan del nodo de cómputo 1\relax }}{90}{figure.caption.96}% -\contentsline {figure}{\numberline {8.4}{\ignorespaces Paquete ARP reply encapsulado en VXLAN capturado en la interfaz br-vxlan del nodo de cómputo 1\relax }}{92}{figure.caption.97}% -\contentsline {figure}{\numberline {8.5}{\ignorespaces Paquete ARP reply capturado en la interfaz eth0 de la instancia 1\relax }}{93}{figure.caption.98}% -\contentsline {figure}{\numberline {8.6}{\ignorespaces Paquete ICMP request capturado en la interfaz eth0 de la instancia 1\relax }}{93}{figure.caption.100}% -\contentsline {figure}{\numberline {8.7}{\ignorespaces Paquete ICMP request encapsulado en VXLAN capturado en la interfaz br-vxlan del nodo de cómputo 1\relax }}{94}{figure.caption.101}% -\contentsline {figure}{\numberline {8.8}{\ignorespaces Diagrama de arquitectura para el escenario 2 de Linux Bridge\relax }}{95}{figure.caption.103}% -\contentsline {figure}{\numberline {8.9}{\ignorespaces Paquete ICMP echo request encapsulado en VXLAN capturado en la interfaz br-vxlan en el nodo de cómputo 1\relax }}{102}{figure.caption.107}% -\contentsline {figure}{\numberline {8.10}{\ignorespaces Paquete ICMP echo request encapsulado en VXLAN capturado en la interfaz br-vxlan en el nodo de cómputo 2\relax }}{103}{figure.caption.111}% -\contentsline {figure}{\numberline {8.11}{\ignorespaces Diagrama de arquitectura para el escenario 3 de Linux Bridge\relax }}{103}{figure.caption.113}% -\contentsline {figure}{\numberline {8.12}{\ignorespaces Paquete ICMP echo request encapsulado en VXLAN capturado en la interfaz br-vxlan en el nodo de cómputo 1\relax }}{108}{figure.caption.117}% -\contentsline {figure}{\numberline {8.13}{\ignorespaces Paquete ARP request taggeado con el VLAN ID 100 capturado en la interfaz br-vlan en el nodo de red\relax }}{109}{figure.caption.120}% -\contentsline {figure}{\numberline {8.14}{\ignorespaces Paquete ICMP echo request capturado en la interfaz br-vlan del nodo de red\relax }}{110}{figure.caption.122}% -\contentsline {figure}{\numberline {8.15}{\ignorespaces Diagrama de arquitectura para el escenario 4 de Linux Bridge\relax }}{111}{figure.caption.124}% -\contentsline {figure}{\numberline {8.16}{\ignorespaces Paquete ICMP echo request taggeado con el VLAN ID 100 capturado en la interfaz eth3 del router físico\relax }}{114}{figure.caption.128}% -\contentsline {figure}{\numberline {8.17}{\ignorespaces Paquete ICMP echo request capturado en la interfaz qg del router de Neutron\relax }}{114}{figure.caption.129}% -\contentsline {figure}{\numberline {8.18}{\ignorespaces Paquete ICMP echo request capturado en la interfaz qr del router de Neutron\relax }}{115}{figure.caption.132}% -\contentsline {figure}{\numberline {8.19}{\ignorespaces Diagrama de componentes de Open vSwitch\relax }}{116}{figure.caption.134}% -\contentsline {figure}{\numberline {8.20}{\ignorespaces Diagrama de arquitectura para el escenario 1 de Open vSwitch\relax }}{120}{figure.caption.135}% -\contentsline {figure}{\numberline {8.21}{\ignorespaces Paquete ARP request capturado en la interfaz eth0 de la instancia 1\relax }}{127}{figure.caption.138}% -\contentsline {figure}{\numberline {8.22}{\ignorespaces ARP request encapsulado en VXLAN capturado en la interfaz br-vxlan del nodo de cómputo 1\relax }}{129}{figure.caption.139}% -\contentsline {figure}{\numberline {8.23}{\ignorespaces ARP reply encapsulado en VXLAN capturado en la interfaz br-vxlan del nodo de cómputo 1\relax }}{133}{figure.caption.140}% -\contentsline {figure}{\numberline {8.24}{\ignorespaces Paquete ARP reply capturado en la interfaz eth0 de la instancia 1\relax }}{134}{figure.caption.141}% -\contentsline {figure}{\numberline {8.25}{\ignorespaces Paquete ICMP request capturado en la interfaz eth0 de la instancia 1\relax }}{134}{figure.caption.143}% -\contentsline {figure}{\numberline {8.26}{\ignorespaces Paquete ICMP request encapsulado en VXLAN 19 capturado en el bridge br-vxlan en el nodo de cómputo 1\relax }}{136}{figure.caption.144}% -\contentsline {figure}{\numberline {8.27}{\ignorespaces Diagrama de arquitectura para el escenario 2 de Open vSwitch\relax }}{137}{figure.caption.146}% -\contentsline {figure}{\numberline {8.28}{\ignorespaces Paquete ICMP echo request encapsulado en VXLAN capturado en la interfaz br-vxlan en el nodo de cómputo 1\relax }}{142}{figure.caption.150}% -\contentsline {figure}{\numberline {8.29}{\ignorespaces Paquete ICMP echo request encapsulado en VXLAN capturado en la interfaz br-vxlan en el nodo de cómputo 2\relax }}{143}{figure.caption.154}% -\contentsline {figure}{\numberline {8.30}{\ignorespaces Diagrama de arquitectura para el escenario 3 de Open vSwitch\relax }}{144}{figure.caption.156}% -\contentsline {figure}{\numberline {8.31}{\ignorespaces Paquete ICMP echo request encapsulado en VXLAN capturado en la interfaz br-vxlan en el nodo de cómputo 1\relax }}{148}{figure.caption.160}% -\contentsline {figure}{\numberline {8.32}{\ignorespaces Paquete ARP request taggeado con el VLAN ID 100 capturado en la interfaz br-vlan en el nodo de red\relax }}{149}{figure.caption.163}% -\contentsline {figure}{\numberline {8.33}{\ignorespaces Paquete ICMP echo request capturado en la interfaz br-vlan del nodo de red\relax }}{150}{figure.caption.165}% -\contentsline {figure}{\numberline {8.34}{\ignorespaces Diagrama de arquitectura para el escenario 4 de Open vSwitch\relax }}{151}{figure.caption.167}% -\contentsline {figure}{\numberline {8.35}{\ignorespaces Paquete ICMP echo request taggeado con el VLAN ID 100 capturado en la interfaz eth3 del router físico\relax }}{154}{figure.caption.171}% -\contentsline {figure}{\numberline {8.36}{\ignorespaces Paquete ICMP echo request capturado en la interfaz qg del router de Neutron\relax }}{154}{figure.caption.172}% -\contentsline {figure}{\numberline {8.37}{\ignorespaces Paquete ICMP echo request capturado en la interfaz qr del router de Neutron\relax }}{155}{figure.caption.175}% -\contentsline {figure}{\numberline {8.38}{\ignorespaces Routers virtuales instanciados en múltiples agentes físicos funcionales\relax }}{156}{figure.caption.177}% -\contentsline {figure}{\numberline {8.39}{\ignorespaces Routers virtuales instanciados en múltiples agentes físicos luego de un fallo en uno de ellos\relax }}{156}{figure.caption.178}% -\addvspace {10\p@ } -\addvspace {10\p@ } -\addvspace {10\p@ } -\contentsline {figure}{\numberline {1.1}{\ignorespaces Arquitectura diseñada para desarrollo\relax }}{170}{figure.caption.184}% -\contentsline {figure}{\numberline {1.2}{\ignorespaces Arquitectura diseñada para producción\relax }}{171}{figure.caption.185}% -\addvspace {10\p@ } -\addvspace {10\p@ } -\addvspace {10\p@ } -\contentsline {figure}{\numberline {3.1}{\ignorespaces Nueva conexión en virt-manager.\relax }}{213}{figure.caption.208}% -\contentsline {figure}{\numberline {3.2}{\ignorespaces Configuración de redes virtuales en virt-manager.\relax }}{214}{figure.caption.209}% -\addvspace {10\p@ } -\contentsline {figure}{\numberline {4.1}{\ignorespaces Vista del login de Horizon.\relax }}{221}{figure.caption.223}% -\contentsline {figure}{\numberline {4.2}{\ignorespaces Creación de un proyecto (1/2).\relax }}{222}{figure.caption.225}% -\contentsline {figure}{\numberline {4.3}{\ignorespaces Creación de un proyecto (2/2).\relax }}{223}{figure.caption.226}% -\contentsline {figure}{\numberline {4.4}{\ignorespaces Creación de un usuario.\relax }}{224}{figure.caption.228}% -\contentsline {figure}{\numberline {4.5}{\ignorespaces Creación de un flavor (1/2).\relax }}{225}{figure.caption.230}% -\contentsline {figure}{\numberline {4.6}{\ignorespaces Creación de un flavor (2/2).\relax }}{225}{figure.caption.231}% -\contentsline {figure}{\numberline {4.7}{\ignorespaces Creación de una red provider (1/2).\relax }}{226}{figure.caption.233}% -\contentsline {figure}{\numberline {4.8}{\ignorespaces Creación de una red provider (2/2).\relax }}{227}{figure.caption.234}% -\contentsline {figure}{\numberline {4.9}{\ignorespaces Creación de una imagen (1/2).\relax }}{228}{figure.caption.236}% -\contentsline {figure}{\numberline {4.10}{\ignorespaces Creación de una imagen (2/2).\relax }}{229}{figure.caption.237}% -\contentsline {figure}{\numberline {4.11}{\ignorespaces Creación de una red (1/3).\relax }}{230}{figure.caption.239}% -\contentsline {figure}{\numberline {4.12}{\ignorespaces Creación de una red (2/3).\relax }}{230}{figure.caption.240}% -\contentsline {figure}{\numberline {4.13}{\ignorespaces Creación de una red (3/3).\relax }}{231}{figure.caption.241}% -\contentsline {figure}{\numberline {4.14}{\ignorespaces Creación de un router.\relax }}{231}{figure.caption.243}% -\contentsline {figure}{\numberline {4.15}{\ignorespaces Creación de una interfaz en un router.\relax }}{232}{figure.caption.245}% -\contentsline {figure}{\numberline {4.16}{\ignorespaces Creación de una key pair.\relax }}{232}{figure.caption.247}% -\contentsline {figure}{\numberline {4.17}{\ignorespaces Lanzar una nueva instancia (1/5).\relax }}{233}{figure.caption.249}% -\contentsline {figure}{\numberline {4.18}{\ignorespaces Lanzar una nueva instancia (2/5).\relax }}{233}{figure.caption.250}% -\contentsline {figure}{\numberline {4.19}{\ignorespaces Lanzar una nueva instancia (3/5).\relax }}{234}{figure.caption.251}% -\contentsline {figure}{\numberline {4.20}{\ignorespaces Lanzar una nueva instancia (4/5).\relax }}{234}{figure.caption.252}% -\contentsline {figure}{\numberline {4.21}{\ignorespaces Lanzar una nueva instancia (5/5).\relax }}{235}{figure.caption.253}% -\contentsline {figure}{\numberline {4.22}{\ignorespaces Asignación de floating IP.\relax }}{236}{figure.caption.254}% -\contentsline {figure}{\numberline {4.23}{\ignorespaces Asociación de floating IP.\relax }}{237}{figure.caption.255}% -\contentsline {figure}{\numberline {4.24}{\ignorespaces Reglas security group por defecto.\relax }}{237}{figure.caption.256}% -\contentsline {figure}{\numberline {4.25}{\ignorespaces Agregar regla para tráfico ICMP.\relax }}{238}{figure.caption.257}% -\contentsline {figure}{\numberline {4.26}{\ignorespaces Agregar regla para tráfico SSH.\relax }}{238}{figure.caption.258}% +\contentsline {figure}{\numberline {8.1}{\ignorespaces Diagrama de arquitectura para el escenario 1 de Linux Bridge\relax }}{84}{figure.caption.96}% +\contentsline {figure}{\numberline {8.2}{\ignorespaces Paquete ARP request capturado en la interfaz eth0 de la instancia 1\relax }}{89}{figure.caption.99}% +\contentsline {figure}{\numberline {8.3}{\ignorespaces Paquete ARP request encapsulado en VXLAN capturado en la interfaz br-vxlan del nodo de cómputo 1\relax }}{89}{figure.caption.100}% +\contentsline {figure}{\numberline {8.4}{\ignorespaces Paquete ARP reply encapsulado en VXLAN capturado en la interfaz br-vxlan del nodo de cómputo 1\relax }}{91}{figure.caption.101}% +\contentsline {figure}{\numberline {8.5}{\ignorespaces Paquete ARP reply capturado en la interfaz eth0 de la instancia 1\relax }}{92}{figure.caption.102}% +\contentsline {figure}{\numberline {8.6}{\ignorespaces Paquete ICMP request capturado en la interfaz eth0 de la instancia 1\relax }}{92}{figure.caption.104}% +\contentsline {figure}{\numberline {8.7}{\ignorespaces Paquete ICMP request encapsulado en VXLAN capturado en la interfaz br-vxlan del nodo de cómputo 1\relax }}{93}{figure.caption.105}% +\contentsline {figure}{\numberline {8.8}{\ignorespaces Diagrama de arquitectura para el escenario 2 de Linux Bridge\relax }}{94}{figure.caption.107}% +\contentsline {figure}{\numberline {8.9}{\ignorespaces Paquete ICMP echo request encapsulado en VXLAN capturado en la interfaz br-vxlan en el nodo de cómputo 1\relax }}{101}{figure.caption.111}% +\contentsline {figure}{\numberline {8.10}{\ignorespaces Paquete ICMP echo request encapsulado en VXLAN capturado en la interfaz br-vxlan en el nodo de cómputo 2\relax }}{102}{figure.caption.115}% +\contentsline {figure}{\numberline {8.11}{\ignorespaces Diagrama de arquitectura para el escenario 3 de Linux Bridge\relax }}{102}{figure.caption.117}% +\contentsline {figure}{\numberline {8.12}{\ignorespaces Paquete ICMP echo request encapsulado en VXLAN capturado en la interfaz br-vxlan en el nodo de cómputo 1\relax }}{107}{figure.caption.121}% +\contentsline {figure}{\numberline {8.13}{\ignorespaces Paquete ARP request taggeado con el VLAN ID 100 capturado en la interfaz br-vlan en el nodo de red\relax }}{108}{figure.caption.124}% +\contentsline {figure}{\numberline {8.14}{\ignorespaces Paquete ICMP echo request capturado en la interfaz br-vlan del nodo de red\relax }}{109}{figure.caption.126}% +\contentsline {figure}{\numberline {8.15}{\ignorespaces Diagrama de arquitectura para el escenario 4 de Linux Bridge\relax }}{110}{figure.caption.128}% +\contentsline {figure}{\numberline {8.16}{\ignorespaces Paquete ICMP echo request taggeado con el VLAN ID 100 capturado en la interfaz eth3 del router físico\relax }}{113}{figure.caption.132}% +\contentsline {figure}{\numberline {8.17}{\ignorespaces Paquete ICMP echo request capturado en la interfaz qg del router de Neutron\relax }}{113}{figure.caption.133}% +\contentsline {figure}{\numberline {8.18}{\ignorespaces Paquete ICMP echo request capturado en la interfaz qr del router de Neutron\relax }}{114}{figure.caption.136}% +\contentsline {figure}{\numberline {8.19}{\ignorespaces Diagrama de componentes de Open vSwitch\relax }}{115}{figure.caption.138}% +\contentsline {figure}{\numberline {8.20}{\ignorespaces Diagrama de arquitectura para el escenario 1 de Open vSwitch\relax }}{119}{figure.caption.139}% +\contentsline {figure}{\numberline {8.21}{\ignorespaces Paquete ARP request capturado en la interfaz eth0 de la instancia 1\relax }}{126}{figure.caption.142}% +\contentsline {figure}{\numberline {8.22}{\ignorespaces ARP request encapsulado en VXLAN capturado en la interfaz br-vxlan del nodo de cómputo 1\relax }}{128}{figure.caption.143}% +\contentsline {figure}{\numberline {8.23}{\ignorespaces ARP reply encapsulado en VXLAN capturado en la interfaz br-vxlan del nodo de cómputo 1\relax }}{132}{figure.caption.144}% +\contentsline {figure}{\numberline {8.24}{\ignorespaces Paquete ARP reply capturado en la interfaz eth0 de la instancia 1\relax }}{133}{figure.caption.145}% +\contentsline {figure}{\numberline {8.25}{\ignorespaces Paquete ICMP request capturado en la interfaz eth0 de la instancia 1\relax }}{133}{figure.caption.147}% +\contentsline {figure}{\numberline {8.26}{\ignorespaces Paquete ICMP request encapsulado en VXLAN 19 capturado en el bridge br-vxlan en el nodo de cómputo 1\relax }}{135}{figure.caption.148}% +\contentsline {figure}{\numberline {8.27}{\ignorespaces Diagrama de arquitectura para el escenario 2 de Open vSwitch\relax }}{136}{figure.caption.150}% +\contentsline {figure}{\numberline {8.28}{\ignorespaces Paquete ICMP echo request encapsulado en VXLAN capturado en la interfaz br-vxlan en el nodo de cómputo 1\relax }}{141}{figure.caption.154}% +\contentsline {figure}{\numberline {8.29}{\ignorespaces Paquete ICMP echo request encapsulado en VXLAN capturado en la interfaz br-vxlan en el nodo de cómputo 2\relax }}{142}{figure.caption.158}% +\contentsline {figure}{\numberline {8.30}{\ignorespaces Diagrama de arquitectura para el escenario 3 de Open vSwitch\relax }}{143}{figure.caption.160}% +\contentsline {figure}{\numberline {8.31}{\ignorespaces Paquete ICMP echo request encapsulado en VXLAN capturado en la interfaz br-vxlan en el nodo de cómputo 1\relax }}{147}{figure.caption.164}% +\contentsline {figure}{\numberline {8.32}{\ignorespaces Paquete ARP request taggeado con el VLAN ID 100 capturado en la interfaz br-vlan en el nodo de red\relax }}{148}{figure.caption.167}% +\contentsline {figure}{\numberline {8.33}{\ignorespaces Paquete ICMP echo request capturado en la interfaz br-vlan del nodo de red\relax }}{149}{figure.caption.169}% +\contentsline {figure}{\numberline {8.34}{\ignorespaces Diagrama de arquitectura para el escenario 4 de Open vSwitch\relax }}{150}{figure.caption.171}% +\contentsline {figure}{\numberline {8.35}{\ignorespaces Paquete ICMP echo request taggeado con el VLAN ID 100 capturado en la interfaz eth3 del router físico\relax }}{153}{figure.caption.175}% +\contentsline {figure}{\numberline {8.36}{\ignorespaces Paquete ICMP echo request capturado en la interfaz qg del router de Neutron\relax }}{153}{figure.caption.176}% +\contentsline {figure}{\numberline {8.37}{\ignorespaces Paquete ICMP echo request capturado en la interfaz qr del router de Neutron\relax }}{154}{figure.caption.179}% +\contentsline {figure}{\numberline {8.38}{\ignorespaces Routers virtuales instanciados en múltiples agentes físicos funcionales\relax }}{155}{figure.caption.181}% +\contentsline {figure}{\numberline {8.39}{\ignorespaces Routers virtuales instanciados en múltiples agentes físicos luego de un fallo en uno de ellos\relax }}{155}{figure.caption.182}% +\addvspace {10\p@ } +\addvspace {10\p@ } +\addvspace {10\p@ } +\contentsline {figure}{\numberline {1.1}{\ignorespaces Arquitectura diseñada para desarrollo\relax }}{169}{figure.caption.188}% +\contentsline {figure}{\numberline {1.2}{\ignorespaces Arquitectura diseñada para producción\relax }}{170}{figure.caption.189}% +\addvspace {10\p@ } +\addvspace {10\p@ } +\addvspace {10\p@ } +\contentsline {figure}{\numberline {3.1}{\ignorespaces Nueva conexión en virt-manager.\relax }}{212}{figure.caption.212}% +\contentsline {figure}{\numberline {3.2}{\ignorespaces Configuración de redes virtuales en virt-manager.\relax }}{213}{figure.caption.213}% +\addvspace {10\p@ } +\contentsline {figure}{\numberline {4.1}{\ignorespaces Vista del login de Horizon.\relax }}{220}{figure.caption.227}% +\contentsline {figure}{\numberline {4.2}{\ignorespaces Creación de un proyecto (1/2).\relax }}{221}{figure.caption.229}% +\contentsline {figure}{\numberline {4.3}{\ignorespaces Creación de un proyecto (2/2).\relax }}{222}{figure.caption.230}% +\contentsline {figure}{\numberline {4.4}{\ignorespaces Creación de un usuario.\relax }}{223}{figure.caption.232}% +\contentsline {figure}{\numberline {4.5}{\ignorespaces Creación de un flavor (1/2).\relax }}{224}{figure.caption.234}% +\contentsline {figure}{\numberline {4.6}{\ignorespaces Creación de un flavor (2/2).\relax }}{224}{figure.caption.235}% +\contentsline {figure}{\numberline {4.7}{\ignorespaces Creación de una red provider (1/2).\relax }}{225}{figure.caption.237}% +\contentsline {figure}{\numberline {4.8}{\ignorespaces Creación de una red provider (2/2).\relax }}{226}{figure.caption.238}% +\contentsline {figure}{\numberline {4.9}{\ignorespaces Creación de una imagen (1/2).\relax }}{227}{figure.caption.240}% +\contentsline {figure}{\numberline {4.10}{\ignorespaces Creación de una imagen (2/2).\relax }}{228}{figure.caption.241}% +\contentsline {figure}{\numberline {4.11}{\ignorespaces Creación de una red (1/3).\relax }}{229}{figure.caption.243}% +\contentsline {figure}{\numberline {4.12}{\ignorespaces Creación de una red (2/3).\relax }}{229}{figure.caption.244}% +\contentsline {figure}{\numberline {4.13}{\ignorespaces Creación de una red (3/3).\relax }}{230}{figure.caption.245}% +\contentsline {figure}{\numberline {4.14}{\ignorespaces Creación de un router.\relax }}{230}{figure.caption.247}% +\contentsline {figure}{\numberline {4.15}{\ignorespaces Creación de una interfaz en un router.\relax }}{231}{figure.caption.249}% +\contentsline {figure}{\numberline {4.16}{\ignorespaces Creación de una key pair.\relax }}{231}{figure.caption.251}% +\contentsline {figure}{\numberline {4.17}{\ignorespaces Lanzar una nueva instancia (1/5).\relax }}{232}{figure.caption.253}% +\contentsline {figure}{\numberline {4.18}{\ignorespaces Lanzar una nueva instancia (2/5).\relax }}{232}{figure.caption.254}% +\contentsline {figure}{\numberline {4.19}{\ignorespaces Lanzar una nueva instancia (3/5).\relax }}{233}{figure.caption.255}% +\contentsline {figure}{\numberline {4.20}{\ignorespaces Lanzar una nueva instancia (4/5).\relax }}{233}{figure.caption.256}% +\contentsline {figure}{\numberline {4.21}{\ignorespaces Lanzar una nueva instancia (5/5).\relax }}{234}{figure.caption.257}% +\contentsline {figure}{\numberline {4.22}{\ignorespaces Asignación de floating IP.\relax }}{235}{figure.caption.258}% +\contentsline {figure}{\numberline {4.23}{\ignorespaces Asociación de floating IP.\relax }}{236}{figure.caption.259}% +\contentsline {figure}{\numberline {4.24}{\ignorespaces Reglas security group por defecto.\relax }}{236}{figure.caption.260}% +\contentsline {figure}{\numberline {4.25}{\ignorespaces Agregar regla para tráfico ICMP.\relax }}{237}{figure.caption.261}% +\contentsline {figure}{\numberline {4.26}{\ignorespaces Agregar regla para tráfico SSH.\relax }}{237}{figure.caption.262}% \addvspace {10\p@ } \contentsfinish diff --git a/docs/udelartex/tesis.out b/docs/udelartex/tesis.out index 7ad12e7c480ec7a1d2d2a3c543038625528cce02..58280faab9eee525030b2385872add76adce6106 100644 --- a/docs/udelartex/tesis.out +++ b/docs/udelartex/tesis.out @@ -50,15 +50,15 @@ \BOOKMARK [2][-]{subsection.6.2.4}{Acceso al exterior desde nodos}{section.6.2}% 50 \BOOKMARK [0][-]{chapter.7}{Gesti\363n del Datacenter}{}% 51 \BOOKMARK [1][-]{section.7.1}{Recuperaci\363n ante fallas}{chapter.7}% 52 -\BOOKMARK [2][-]{subsection.7.1.1}{Verificar el estado general de OpenStack}{section.7.1}% 53 -\BOOKMARK [2][-]{subsection.7.1.2}{Verificar estado de los componentes de la infraestructura}{section.7.1}% 54 -\BOOKMARK [2][-]{subsection.7.1.3}{Solucionar problemas}{section.7.1}% 55 +\BOOKMARK [2][-]{subsection.7.1.1}{Verificaci\363n general}{section.7.1}% 53 +\BOOKMARK [2][-]{subsection.7.1.2}{Tareas de mantenimiento}{section.7.1}% 54 +\BOOKMARK [2][-]{subsection.7.1.3}{Soluci\363n de problemas}{section.7.1}% 55 \BOOKMARK [2][-]{subsection.7.1.4}{Problemas con Ceph}{section.7.1}% 56 \BOOKMARK [1][-]{section.7.2}{Escalamiento horizontal}{chapter.7}% 57 \BOOKMARK [2][-]{subsection.7.2.1}{Agregar nodo de C\363mputo}{section.7.2}% 58 \BOOKMARK [2][-]{subsection.7.2.2}{Eliminar un nodo de c\363mputo}{section.7.2}% 59 -\BOOKMARK [2][-]{subsection.7.2.3}{Infraestructura}{section.7.2}% 60 -\BOOKMARK [1][-]{section.7.3}{Actualizar versi\363n}{chapter.7}% 61 +\BOOKMARK [2][-]{subsection.7.2.3}{Agregar nodo de Infraestructura}{section.7.2}% 60 +\BOOKMARK [1][-]{section.7.3}{Actualizaci\363n de versi\363n}{chapter.7}% 61 \BOOKMARK [0][-]{chapter.8}{An\341lisis del m\363dulo de red}{}% 62 \BOOKMARK [1][-]{section.8.1}{Escenarios de prueba}{chapter.8}% 63 \BOOKMARK [2][-]{subsection.8.1.1}{Escenario 1: tr\341fico este-oeste \(misma red tenant\)}{section.8.1}% 64 @@ -80,11 +80,11 @@ \BOOKMARK [2][-]{subsection.8.5.1}{Layer 3 High Availability}{section.8.5}% 80 \BOOKMARK [0][-]{chapter.9}{Trabajo a futuro}{}% 81 \BOOKMARK [0][-]{chapter.10}{Conclusiones}{}% 82 -\BOOKMARK [0][-]{chapter*.182}{Referencias bibliogr\341ficas}{}% 83 -\BOOKMARK [0][-]{chapter*.182}{Glosario}{}% 84 -\BOOKMARK [0][-]{section*.183}{Ap\351ndices}{}% 85 +\BOOKMARK [0][-]{chapter*.186}{Referencias bibliogr\341ficas}{}% 83 +\BOOKMARK [0][-]{chapter*.186}{Glosario}{}% 84 +\BOOKMARK [0][-]{section*.187}{Ap\351ndices}{}% 85 \BOOKMARK [0][-]{appendix.Alph1}{Im\341genes}{}% 86 -\BOOKMARK [0][-]{section*.186}{Anexos}{}% 87 +\BOOKMARK [0][-]{section*.190}{Anexos}{}% 87 \BOOKMARK [0][-]{appendix.Anexo.1}{Instalaci\363n versi\363n Queens}{}% 88 \BOOKMARK [1][-]{section.Anexo.1.1}{Preparaci\363n de nodos}{appendix.Anexo.1}% 89 \BOOKMARK [1][-]{section.Anexo.1.2}{Configuraci\363n}{appendix.Anexo.1}% 90 diff --git a/docs/udelartex/tesis.pdf b/docs/udelartex/tesis.pdf index 680634d8e0ecca642b1514439587f9d1c1d8c1b0..30e67bf812f61011c33ca7f3d7888f053d9aabd4 100644 Binary files a/docs/udelartex/tesis.pdf and b/docs/udelartex/tesis.pdf differ diff --git a/docs/udelartex/tesis.synctex.gz b/docs/udelartex/tesis.synctex.gz index 13554828c2111e941ab0dfdd328ff69d7c713700..abb63ef9eed66a6b2a7921a4fee32e226efc4be1 100644 Binary files a/docs/udelartex/tesis.synctex.gz and b/docs/udelartex/tesis.synctex.gz differ diff --git a/docs/udelartex/tesis.toc b/docs/udelartex/tesis.toc index fb14a7a198701fdac2f42e54613333232e8488c7..ca2a204dd6e0eeab4ddab4075d51e0ca79a3d03a 100644 --- a/docs/udelartex/tesis.toc +++ b/docs/udelartex/tesis.toc @@ -91,142 +91,142 @@ \contentsline {subsection}{\numberline {6.2.4}Acceso al exterior desde nodos}{62}{subsection.6.2.4}% \contentsline {chapter}{\numberline {7}Gestión del Datacenter}{63}{chapter.7}% \contentsline {section}{\numberline {7.1}Recuperación ante fallas}{63}{section.7.1}% -\contentsline {subsection}{\numberline {7.1.1}Verificar el estado general de OpenStack}{63}{subsection.7.1.1}% -\contentsline {subsection}{\numberline {7.1.2}Verificar estado de los componentes de la infraestructura}{64}{subsection.7.1.2}% -\contentsline {subsection}{\numberline {7.1.3}Solucionar problemas}{64}{subsection.7.1.3}% +\contentsline {subsection}{\numberline {7.1.1}Verificación general}{63}{subsection.7.1.1}% +\contentsline {subsection}{\numberline {7.1.2}Tareas de mantenimiento}{64}{subsection.7.1.2}% +\contentsline {subsection}{\numberline {7.1.3}Solución de problemas}{64}{subsection.7.1.3}% \contentsline {subsection}{\numberline {7.1.4}Problemas con Ceph}{65}{subsection.7.1.4}% \contentsline {section}{\numberline {7.2}Escalamiento horizontal}{66}{section.7.2}% \contentsline {subsection}{\numberline {7.2.1}Agregar nodo de Cómputo}{66}{subsection.7.2.1}% \contentsline {subsection}{\numberline {7.2.2}Eliminar un nodo de cómputo}{67}{subsection.7.2.2}% -\contentsline {subsection}{\numberline {7.2.3}Infraestructura}{69}{subsection.7.2.3}% -\contentsline {section}{\numberline {7.3}Actualizar versión}{73}{section.7.3}% -\contentsline {chapter}{\numberline {8}Análisis del módulo de red}{79}{chapter.8}% -\contentsline {section}{\numberline {8.1}Escenarios de prueba}{79}{section.8.1}% -\contentsline {subsection}{\numberline {8.1.1}Escenario 1: tráfico este-oeste (misma red tenant)}{80}{subsection.8.1.1}% -\contentsline {subsubsection}{\numberline {8.1.1.1}Composición del escenario}{80}{subsubsection.8.1.1.1}% -\contentsline {subsection}{\numberline {8.1.2}Escenario 2: tráfico este-oeste (distintas redes tenant)}{81}{subsection.8.1.2}% -\contentsline {subsubsection}{\numberline {8.1.2.1}Composición del escenario}{81}{subsubsection.8.1.2.1}% -\contentsline {subsection}{\numberline {8.1.3}Escenario 3: tráfico norte-sur (acceso hacia el exterior)}{82}{subsection.8.1.3}% -\contentsline {subsubsection}{\numberline {8.1.3.1}Composición del escenario}{83}{subsubsection.8.1.3.1}% -\contentsline {subsection}{\numberline {8.1.4}Escenario 4: tráfico norte-sur (acceso desde el exterior)}{84}{subsection.8.1.4}% -\contentsline {subsubsection}{\numberline {8.1.4.1}Composición del escenario}{84}{subsubsection.8.1.4.1}% -\contentsline {section}{\numberline {8.2}Linux bridge}{84}{section.8.2}% -\contentsline {subsection}{\numberline {8.2.1}Escenario 1}{85}{subsection.8.2.1}% -\contentsline {subsubsection}{\numberline {8.2.1.1}Análisis de componentes}{86}{subsubsection.8.2.1.1}% -\contentsline {subsubsection}{\numberline {8.2.1.2}Análisis de tráfico}{89}{subsubsection.8.2.1.2}% -\contentsline {subparagraph}{Paso 1}{89}{section*.93}% -\contentsline {subparagraph}{Paso 2}{89}{section*.94}% -\contentsline {subparagraph}{Paso 3}{93}{section*.99}% -\contentsline {subparagraph}{Paso 4}{94}{section*.102}% -\contentsline {subsection}{\numberline {8.2.2}Escenario 2}{95}{subsection.8.2.2}% -\contentsline {subsubsection}{\numberline {8.2.2.1}Análisis de componentes}{95}{subsubsection.8.2.2.1}% -\contentsline {subsubsection}{\numberline {8.2.2.2}Análisis de tráfico}{101}{subsubsection.8.2.2.2}% -\contentsline {subparagraph}{Paso 1}{101}{section*.104}% -\contentsline {subparagraph}{Paso 2}{101}{section*.105}% -\contentsline {subparagraph}{Paso 3}{101}{section*.106}% -\contentsline {subparagraph}{Paso 4}{102}{section*.108}% -\contentsline {subparagraph}{Paso 5}{102}{section*.109}% -\contentsline {subparagraph}{Paso 6}{102}{section*.110}% -\contentsline {subparagraph}{Paso 7}{102}{section*.112}% -\contentsline {subsection}{\numberline {8.2.3}Escenario 3}{103}{subsection.8.2.3}% -\contentsline {subsubsection}{\numberline {8.2.3.1}Análisis de componentes}{104}{subsubsection.8.2.3.1}% -\contentsline {subsubsection}{\numberline {8.2.3.2}Análisis de tráfico}{107}{subsubsection.8.2.3.2}% -\contentsline {subparagraph}{Paso 1}{107}{section*.114}% -\contentsline {subparagraph}{Paso 2}{107}{section*.115}% -\contentsline {subparagraph}{Paso 3}{107}{section*.116}% -\contentsline {subparagraph}{Paso 4}{108}{section*.118}% -\contentsline {subparagraph}{Paso 5}{108}{section*.119}% -\contentsline {subparagraph}{Paso 6}{109}{section*.121}% -\contentsline {subparagraph}{Paso 7}{110}{section*.123}% -\contentsline {subsection}{\numberline {8.2.4}Escenario 4}{111}{subsection.8.2.4}% -\contentsline {subsubsection}{\numberline {8.2.4.1}Análisis de componentes}{111}{subsubsection.8.2.4.1}% -\contentsline {subsubsection}{\numberline {8.2.4.2}Análisis de tráfico}{113}{subsubsection.8.2.4.2}% -\contentsline {subparagraph}{Paso 1}{113}{section*.125}% -\contentsline {subparagraph}{Paso 2}{113}{section*.126}% -\contentsline {subparagraph}{Paso 3}{113}{section*.127}% -\contentsline {subparagraph}{Paso 4}{114}{section*.130}% -\contentsline {subparagraph}{Paso 5}{114}{section*.131}% -\contentsline {subparagraph}{Paso 6}{115}{section*.133}% -\contentsline {section}{\numberline {8.3}Open vSwitch}{115}{section.8.3}% -\contentsline {subsubsection}{\numberline {8.3.0.1}Archivos de configuración}{117}{subsubsection.8.3.0.1}% -\contentsline {subsection}{\numberline {8.3.1}Escenario 1}{120}{subsection.8.3.1}% -\contentsline {subsubsection}{\numberline {8.3.1.1}Análisis de componentes}{120}{subsubsection.8.3.1.1}% -\contentsline {subsubsection}{\numberline {8.3.1.2}Análisis de tráfico}{126}{subsubsection.8.3.1.2}% -\contentsline {subparagraph}{Paso 1}{126}{section*.136}% -\contentsline {subparagraph}{Paso 2}{127}{section*.137}% -\contentsline {subparagraph}{Paso 3}{134}{section*.142}% -\contentsline {subparagraph}{Paso 4}{136}{section*.145}% -\contentsline {subsection}{\numberline {8.3.2}Escenario 2}{137}{subsection.8.3.2}% -\contentsline {subsubsection}{\numberline {8.3.2.1}Análisis de componentes}{137}{subsubsection.8.3.2.1}% -\contentsline {subsubsection}{\numberline {8.3.2.2}Análisis de tráfico}{141}{subsubsection.8.3.2.2}% -\contentsline {subparagraph}{Paso 1}{142}{section*.147}% -\contentsline {subparagraph}{Paso 2}{142}{section*.148}% -\contentsline {subparagraph}{Paso 3}{142}{section*.149}% -\contentsline {subparagraph}{Paso 4}{142}{section*.151}% -\contentsline {subparagraph}{Paso 5}{143}{section*.152}% -\contentsline {subparagraph}{Paso 6}{143}{section*.153}% -\contentsline {subparagraph}{Paso 7}{143}{section*.155}% -\contentsline {subsection}{\numberline {8.3.3}Escenario 3}{144}{subsection.8.3.3}% -\contentsline {subsubsection}{\numberline {8.3.3.1}Análisis de componentes}{144}{subsubsection.8.3.3.1}% -\contentsline {subsubsection}{\numberline {8.3.3.2}Análisis de tráfico}{147}{subsubsection.8.3.3.2}% -\contentsline {subparagraph}{Paso 1}{147}{section*.157}% -\contentsline {subparagraph}{Paso 2}{147}{section*.158}% -\contentsline {subparagraph}{Paso 3}{148}{section*.159}% -\contentsline {subparagraph}{Paso 4}{148}{section*.161}% -\contentsline {subparagraph}{Paso 5}{148}{section*.162}% -\contentsline {subparagraph}{Paso 6}{150}{section*.164}% -\contentsline {subparagraph}{Paso 7}{150}{section*.166}% -\contentsline {subsection}{\numberline {8.3.4}Escenario 4}{151}{subsection.8.3.4}% -\contentsline {subsubsection}{\numberline {8.3.4.1}Análisis de componentes}{151}{subsubsection.8.3.4.1}% -\contentsline {subsubsection}{\numberline {8.3.4.2}Análisis de tráfico}{152}{subsubsection.8.3.4.2}% -\contentsline {subparagraph}{Paso 1}{153}{section*.168}% -\contentsline {subparagraph}{Paso 2}{153}{section*.169}% -\contentsline {subparagraph}{Paso 3}{153}{section*.170}% -\contentsline {subparagraph}{Paso 4}{155}{section*.173}% -\contentsline {subparagraph}{Paso 5}{155}{section*.174}% -\contentsline {subparagraph}{Paso 6}{155}{section*.176}% -\contentsline {section}{\numberline {8.4}Comparativa de drivers}{155}{section.8.4}% -\contentsline {section}{\numberline {8.5}Funcionalidades avanzadas}{155}{section.8.5}% -\contentsline {subsection}{\numberline {8.5.1}Layer 3 High Availability}{155}{subsection.8.5.1}% -\contentsline {chapter}{\numberline {9}Trabajo a futuro}{157}{chapter.9}% -\contentsline {chapter}{\numberline {10}Conclusiones}{159}{chapter.10}% -\contentsline {chapter}{Referencias bibliográficas}{160}{chapter*.182}% -\contentsline {chapter}{Glosario}{167}{chapter*.182}% -\contentsline {chapter}{\textbf {Apéndices}}{168}{section*.183}% +\contentsline {subsection}{\numberline {7.2.3}Agregar nodo de Infraestructura}{69}{subsection.7.2.3}% +\contentsline {section}{\numberline {7.3}Actualización de versión}{72}{section.7.3}% +\contentsline {chapter}{\numberline {8}Análisis del módulo de red}{78}{chapter.8}% +\contentsline {section}{\numberline {8.1}Escenarios de prueba}{78}{section.8.1}% +\contentsline {subsection}{\numberline {8.1.1}Escenario 1: tráfico este-oeste (misma red tenant)}{79}{subsection.8.1.1}% +\contentsline {subsubsection}{\numberline {8.1.1.1}Composición del escenario}{79}{subsubsection.8.1.1.1}% +\contentsline {subsection}{\numberline {8.1.2}Escenario 2: tráfico este-oeste (distintas redes tenant)}{80}{subsection.8.1.2}% +\contentsline {subsubsection}{\numberline {8.1.2.1}Composición del escenario}{80}{subsubsection.8.1.2.1}% +\contentsline {subsection}{\numberline {8.1.3}Escenario 3: tráfico norte-sur (acceso hacia el exterior)}{81}{subsection.8.1.3}% +\contentsline {subsubsection}{\numberline {8.1.3.1}Composición del escenario}{82}{subsubsection.8.1.3.1}% +\contentsline {subsection}{\numberline {8.1.4}Escenario 4: tráfico norte-sur (acceso desde el exterior)}{83}{subsection.8.1.4}% +\contentsline {subsubsection}{\numberline {8.1.4.1}Composición del escenario}{83}{subsubsection.8.1.4.1}% +\contentsline {section}{\numberline {8.2}Linux bridge}{83}{section.8.2}% +\contentsline {subsection}{\numberline {8.2.1}Escenario 1}{84}{subsection.8.2.1}% +\contentsline {subsubsection}{\numberline {8.2.1.1}Análisis de componentes}{85}{subsubsection.8.2.1.1}% +\contentsline {subsubsection}{\numberline {8.2.1.2}Análisis de tráfico}{88}{subsubsection.8.2.1.2}% +\contentsline {subparagraph}{Paso 1}{88}{section*.97}% +\contentsline {subparagraph}{Paso 2}{88}{section*.98}% +\contentsline {subparagraph}{Paso 3}{92}{section*.103}% +\contentsline {subparagraph}{Paso 4}{93}{section*.106}% +\contentsline {subsection}{\numberline {8.2.2}Escenario 2}{94}{subsection.8.2.2}% +\contentsline {subsubsection}{\numberline {8.2.2.1}Análisis de componentes}{94}{subsubsection.8.2.2.1}% +\contentsline {subsubsection}{\numberline {8.2.2.2}Análisis de tráfico}{100}{subsubsection.8.2.2.2}% +\contentsline {subparagraph}{Paso 1}{100}{section*.108}% +\contentsline {subparagraph}{Paso 2}{100}{section*.109}% +\contentsline {subparagraph}{Paso 3}{100}{section*.110}% +\contentsline {subparagraph}{Paso 4}{101}{section*.112}% +\contentsline {subparagraph}{Paso 5}{101}{section*.113}% +\contentsline {subparagraph}{Paso 6}{101}{section*.114}% +\contentsline {subparagraph}{Paso 7}{101}{section*.116}% +\contentsline {subsection}{\numberline {8.2.3}Escenario 3}{102}{subsection.8.2.3}% +\contentsline {subsubsection}{\numberline {8.2.3.1}Análisis de componentes}{103}{subsubsection.8.2.3.1}% +\contentsline {subsubsection}{\numberline {8.2.3.2}Análisis de tráfico}{106}{subsubsection.8.2.3.2}% +\contentsline {subparagraph}{Paso 1}{106}{section*.118}% +\contentsline {subparagraph}{Paso 2}{106}{section*.119}% +\contentsline {subparagraph}{Paso 3}{106}{section*.120}% +\contentsline {subparagraph}{Paso 4}{107}{section*.122}% +\contentsline {subparagraph}{Paso 5}{107}{section*.123}% +\contentsline {subparagraph}{Paso 6}{108}{section*.125}% +\contentsline {subparagraph}{Paso 7}{109}{section*.127}% +\contentsline {subsection}{\numberline {8.2.4}Escenario 4}{110}{subsection.8.2.4}% +\contentsline {subsubsection}{\numberline {8.2.4.1}Análisis de componentes}{110}{subsubsection.8.2.4.1}% +\contentsline {subsubsection}{\numberline {8.2.4.2}Análisis de tráfico}{112}{subsubsection.8.2.4.2}% +\contentsline {subparagraph}{Paso 1}{112}{section*.129}% +\contentsline {subparagraph}{Paso 2}{112}{section*.130}% +\contentsline {subparagraph}{Paso 3}{112}{section*.131}% +\contentsline {subparagraph}{Paso 4}{113}{section*.134}% +\contentsline {subparagraph}{Paso 5}{113}{section*.135}% +\contentsline {subparagraph}{Paso 6}{114}{section*.137}% +\contentsline {section}{\numberline {8.3}Open vSwitch}{114}{section.8.3}% +\contentsline {subsubsection}{\numberline {8.3.0.1}Archivos de configuración}{116}{subsubsection.8.3.0.1}% +\contentsline {subsection}{\numberline {8.3.1}Escenario 1}{119}{subsection.8.3.1}% +\contentsline {subsubsection}{\numberline {8.3.1.1}Análisis de componentes}{119}{subsubsection.8.3.1.1}% +\contentsline {subsubsection}{\numberline {8.3.1.2}Análisis de tráfico}{125}{subsubsection.8.3.1.2}% +\contentsline {subparagraph}{Paso 1}{125}{section*.140}% +\contentsline {subparagraph}{Paso 2}{126}{section*.141}% +\contentsline {subparagraph}{Paso 3}{133}{section*.146}% +\contentsline {subparagraph}{Paso 4}{135}{section*.149}% +\contentsline {subsection}{\numberline {8.3.2}Escenario 2}{136}{subsection.8.3.2}% +\contentsline {subsubsection}{\numberline {8.3.2.1}Análisis de componentes}{136}{subsubsection.8.3.2.1}% +\contentsline {subsubsection}{\numberline {8.3.2.2}Análisis de tráfico}{140}{subsubsection.8.3.2.2}% +\contentsline {subparagraph}{Paso 1}{141}{section*.151}% +\contentsline {subparagraph}{Paso 2}{141}{section*.152}% +\contentsline {subparagraph}{Paso 3}{141}{section*.153}% +\contentsline {subparagraph}{Paso 4}{141}{section*.155}% +\contentsline {subparagraph}{Paso 5}{142}{section*.156}% +\contentsline {subparagraph}{Paso 6}{142}{section*.157}% +\contentsline {subparagraph}{Paso 7}{142}{section*.159}% +\contentsline {subsection}{\numberline {8.3.3}Escenario 3}{143}{subsection.8.3.3}% +\contentsline {subsubsection}{\numberline {8.3.3.1}Análisis de componentes}{143}{subsubsection.8.3.3.1}% +\contentsline {subsubsection}{\numberline {8.3.3.2}Análisis de tráfico}{146}{subsubsection.8.3.3.2}% +\contentsline {subparagraph}{Paso 1}{146}{section*.161}% +\contentsline {subparagraph}{Paso 2}{146}{section*.162}% +\contentsline {subparagraph}{Paso 3}{147}{section*.163}% +\contentsline {subparagraph}{Paso 4}{147}{section*.165}% +\contentsline {subparagraph}{Paso 5}{147}{section*.166}% +\contentsline {subparagraph}{Paso 6}{149}{section*.168}% +\contentsline {subparagraph}{Paso 7}{149}{section*.170}% +\contentsline {subsection}{\numberline {8.3.4}Escenario 4}{150}{subsection.8.3.4}% +\contentsline {subsubsection}{\numberline {8.3.4.1}Análisis de componentes}{150}{subsubsection.8.3.4.1}% +\contentsline {subsubsection}{\numberline {8.3.4.2}Análisis de tráfico}{151}{subsubsection.8.3.4.2}% +\contentsline {subparagraph}{Paso 1}{152}{section*.172}% +\contentsline {subparagraph}{Paso 2}{152}{section*.173}% +\contentsline {subparagraph}{Paso 3}{152}{section*.174}% +\contentsline {subparagraph}{Paso 4}{154}{section*.177}% +\contentsline {subparagraph}{Paso 5}{154}{section*.178}% +\contentsline {subparagraph}{Paso 6}{154}{section*.180}% +\contentsline {section}{\numberline {8.4}Comparativa de drivers}{154}{section.8.4}% +\contentsline {section}{\numberline {8.5}Funcionalidades avanzadas}{154}{section.8.5}% +\contentsline {subsection}{\numberline {8.5.1}Layer 3 High Availability}{154}{subsection.8.5.1}% +\contentsline {chapter}{\numberline {9}Trabajo a futuro}{156}{chapter.9}% +\contentsline {chapter}{\numberline {10}Conclusiones}{158}{chapter.10}% +\contentsline {chapter}{Referencias bibliográficas}{159}{chapter*.186}% +\contentsline {chapter}{Glosario}{166}{chapter*.186}% +\contentsline {chapter}{\textbf {Apéndices}}{167}{section*.187}% \ttl@change@i {\@ne }{chapter}{13pt}{}{ Apéndice\ \thecontentslabel \quad }{}{\titlerule *[1pc]{.}\contentspage }\relax \ttl@change@v {chapter}{}{}{}\relax -\contentsline {chapter}{\numberline {1}Imágenes}{169}{appendix.Alph1}% +\contentsline {chapter}{\numberline {1}Imágenes}{168}{appendix.Alph1}% \ttl@change@i {\@ne }{chapter}{0pt}{\vspace *{0.45cm}}{\thecontentslabel \quad }{}{\bfseries \hfill \contentspage }\relax \ttl@change@v {chapter}{}{}{}\relax -\contentsline {chapter}{\textbf {Anexos}}{172}{section*.186}% +\contentsline {chapter}{\textbf {Anexos}}{171}{section*.190}% \ttl@change@i {\@ne }{chapter}{13pt}{}{ Anexo\ \thecontentslabel \quad }{}{\titlerule *[1pc]{.}\contentspage }\relax \ttl@change@v {chapter}{}{}{}\relax -\contentsline {chapter}{\numberline {1}Instalación versión Queens}{173}{appendix.Anexo.1}% -\contentsline {section}{\numberline {1.1}Preparación de nodos}{173}{section.Anexo.1.1}% -\contentsline {section}{\numberline {1.2}Configuración}{182}{section.Anexo.1.2}% -\contentsline {subsection}{\numberline {1.2.1}Configuración claves SSH}{182}{subsection.Anexo.1.2.1}% -\contentsline {subsection}{\numberline {1.2.2}Archivos de configuración OSA}{183}{subsection.Anexo.1.2.2}% -\contentsline {subsection}{\numberline {1.2.3}Generación de claves}{188}{subsection.Anexo.1.2.3}% -\contentsline {subsection}{\numberline {1.2.4}Correcciones}{188}{subsection.Anexo.1.2.4}% -\contentsline {subsubsection}{\numberline {1.2.4.1}SELinux}{188}{subsubsection.Anexo.1.2.4.1}% -\contentsline {chapter}{\numberline {2}Instalación versión Stein}{190}{appendix.Anexo.2}% -\contentsline {section}{\numberline {2.1}Preparación de nodos}{190}{section.Anexo.2.1}% -\contentsline {section}{\numberline {2.2}Configuración archivos OSA}{203}{section.Anexo.2.2}% -\contentsline {section}{\numberline {2.3}Cambios para driver OVS}{210}{section.Anexo.2.3}% -\contentsline {chapter}{\numberline {3}Virtualización con KVM}{213}{appendix.Anexo.3}% -\contentsline {section}{\numberline {3.1}Utilización virt-manager}{213}{section.Anexo.3.1}% -\contentsline {subsection}{\numberline {3.1.1}Conexión remota}{213}{subsection.Anexo.3.1.1}% -\contentsline {subsection}{\numberline {3.1.2}Creación de una red}{214}{subsection.Anexo.3.1.2}% -\contentsline {subsection}{\numberline {3.1.3}Crear nodo}{216}{subsection.Anexo.3.1.3}% -\contentsline {chapter}{\numberline {4}Interacción}{220}{appendix.Anexo.4}% -\contentsline {section}{\numberline {4.1}Configuraciones de administrador}{221}{section.Anexo.4.1}% -\contentsline {section}{\numberline {4.2}Interacción de un usuario}{227}{section.Anexo.4.2}% -\contentsline {section}{\numberline {4.3}Acceso a una instancia}{235}{section.Anexo.4.3}% -\contentsline {subsection}{\numberline {4.3.1}Por SPICE}{235}{subsection.Anexo.4.3.1}% -\contentsline {subsection}{\numberline {4.3.2}Por SSH}{236}{subsection.Anexo.4.3.2}% -\contentsline {subsubsection}{\numberline {4.3.2.1}Asociar una Floating IP a la instancia}{236}{subsubsection.Anexo.4.3.2.1}% -\contentsline {subsubsection}{\numberline {4.3.2.2}Modificar security group}{237}{subsubsection.Anexo.4.3.2.2}% -\contentsline {subsubsection}{\numberline {4.3.2.3}SSH}{238}{subsubsection.Anexo.4.3.2.3}% -\contentsline {subsection}{\numberline {4.3.3}Por virsh}{239}{subsection.Anexo.4.3.3}% -\contentsline {chapter}{\numberline {5}migrate\_instance.sh}{240}{appendix.Anexo.5}% +\contentsline {chapter}{\numberline {1}Instalación versión Queens}{172}{appendix.Anexo.1}% +\contentsline {section}{\numberline {1.1}Preparación de nodos}{172}{section.Anexo.1.1}% +\contentsline {section}{\numberline {1.2}Configuración}{181}{section.Anexo.1.2}% +\contentsline {subsection}{\numberline {1.2.1}Configuración claves SSH}{181}{subsection.Anexo.1.2.1}% +\contentsline {subsection}{\numberline {1.2.2}Archivos de configuración OSA}{182}{subsection.Anexo.1.2.2}% +\contentsline {subsection}{\numberline {1.2.3}Generación de claves}{187}{subsection.Anexo.1.2.3}% +\contentsline {subsection}{\numberline {1.2.4}Correcciones}{187}{subsection.Anexo.1.2.4}% +\contentsline {subsubsection}{\numberline {1.2.4.1}SELinux}{187}{subsubsection.Anexo.1.2.4.1}% +\contentsline {chapter}{\numberline {2}Instalación versión Stein}{189}{appendix.Anexo.2}% +\contentsline {section}{\numberline {2.1}Preparación de nodos}{189}{section.Anexo.2.1}% +\contentsline {section}{\numberline {2.2}Configuración archivos OSA}{202}{section.Anexo.2.2}% +\contentsline {section}{\numberline {2.3}Cambios para driver OVS}{209}{section.Anexo.2.3}% +\contentsline {chapter}{\numberline {3}Virtualización con KVM}{212}{appendix.Anexo.3}% +\contentsline {section}{\numberline {3.1}Utilización virt-manager}{212}{section.Anexo.3.1}% +\contentsline {subsection}{\numberline {3.1.1}Conexión remota}{212}{subsection.Anexo.3.1.1}% +\contentsline {subsection}{\numberline {3.1.2}Creación de una red}{213}{subsection.Anexo.3.1.2}% +\contentsline {subsection}{\numberline {3.1.3}Crear nodo}{215}{subsection.Anexo.3.1.3}% +\contentsline {chapter}{\numberline {4}Interacción}{219}{appendix.Anexo.4}% +\contentsline {section}{\numberline {4.1}Configuraciones de administrador}{220}{section.Anexo.4.1}% +\contentsline {section}{\numberline {4.2}Interacción de un usuario}{226}{section.Anexo.4.2}% +\contentsline {section}{\numberline {4.3}Acceso a una instancia}{234}{section.Anexo.4.3}% +\contentsline {subsection}{\numberline {4.3.1}Por SPICE}{234}{subsection.Anexo.4.3.1}% +\contentsline {subsection}{\numberline {4.3.2}Por SSH}{235}{subsection.Anexo.4.3.2}% +\contentsline {subsubsection}{\numberline {4.3.2.1}Asociar una Floating IP a la instancia}{235}{subsubsection.Anexo.4.3.2.1}% +\contentsline {subsubsection}{\numberline {4.3.2.2}Modificar security group}{236}{subsubsection.Anexo.4.3.2.2}% +\contentsline {subsubsection}{\numberline {4.3.2.3}SSH}{237}{subsubsection.Anexo.4.3.2.3}% +\contentsline {subsection}{\numberline {4.3.3}Por virsh}{238}{subsection.Anexo.4.3.3}% +\contentsline {chapter}{\numberline {5}migrate\_instance.sh}{239}{appendix.Anexo.5}% \contentsfinish diff --git a/docs/udelartex/tesis.xwm b/docs/udelartex/tesis.xwm index c95cf0b6eff1d7ad0ef2b562be8738f7b49be236..831c6bd1dc843d5148397e437bc4dede05c41643 100644 --- a/docs/udelartex/tesis.xwm +++ b/docs/udelartex/tesis.xwm @@ -1,2 +1,2 @@ \relax -\xwmnewlabel{xwmlastpage}{{5}{241}{migrate\_instance.sh\relax }{lstnumber.-305.31}{}} +\xwmnewlabel{xwmlastpage}{{5}{240}{migrate\_instance.sh\relax }{lstnumber.-313.31}{}}