{"id":4464,"date":"2018-06-22T18:36:33","date_gmt":"2018-06-22T21:36:33","guid":{"rendered":"https:\/\/blog.clusterweb.com.br\/?p=4464"},"modified":"2018-06-22T18:36:33","modified_gmt":"2018-06-22T21:36:33","slug":"migracao-de-maquina-virtual-do-citrix-xenserver-para-proxmox","status":"publish","type":"post","link":"https:\/\/blog.clusterweb.com.br\/?p=4464","title":{"rendered":"Migra\u00e7\u00e3o de M\u00e1quina Virtual do Citrix XenServer para ProxMox"},"content":{"rendered":"<p><strong>INTRODU\u00c7\u00c3O<\/strong><\/p>\n<p>Pretendo abordar nesse tutorial a migra\u00e7\u00e3o das m\u00e1quinas virtuais do Citrix XenServer para o ProxMox. Por mais que a vers\u00e3o 6.2 do Citrix XenServer\u00a0<a href=\"http:\/\/blogs.citrix.com\/2013\/06\/25\/xenserver-6-2-is-now-fully-open-source\/\">tenha se tornado 100% opensource<\/a>, nunca fiquei 100% satisfeito com o XenCenter (ferramenta de gerenciamento do Citrix XenServer) ser disponibilizado apenas para Windows. Com isso,\u00a0 fui obrigado a ter uma m\u00e1quina virtual com Windows apenas para gerenciar os servidores Citrix Xen. Assim, surgiu o interesse em migrar para o KVM (Kernel-based Virtual Machine) que possui v\u00e1rias\u00a0<a href=\"http:\/\/www.linux-kvm.org\/page\/Management_Tools\">ferramentas de gerenciamento<\/a>. Por considerar mais pr\u00e1tica e intuitiva, a escolha feita foi pelo\u00a0<a href=\"http:\/\/www.proxmox.com\/\">ProxMox VE<\/a>.<\/p>\n<p>&nbsp;<\/p>\n<p><strong>EXPORTANDO A VM DO XENSERVER<\/strong><\/p>\n<p>\u00c9 ineg\u00e1vel que\u00a0 XenCenter seja muito intuitivo. Mas na maioria das vezes, o procedimento de exporta\u00e7\u00e3o de VM (Menu: VM&gt;Export) n\u00e3o funciona corretamente:<br \/>\n<a href=\"https:\/\/i0.wp.com\/acrelinux.org\/wp-content\/uploads\/2015\/01\/citrix-export-error.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-704\" src=\"https:\/\/i0.wp.com\/acrelinux.org\/wp-content\/uploads\/2015\/01\/citrix-export-error.png?resize=247%2C75\" alt=\"citrix-export-error\" width=\"245\" height=\"74\" data-attachment-id=\"704\" data-permalink=\"http:\/\/acrelinux.org\/migracao-de-maquina-virtual-do-citrix-xenserver-para-proxmox\/citrix-export-error\/#main\" data-orig-file=\"https:\/\/i0.wp.com\/acrelinux.org\/wp-content\/uploads\/2015\/01\/citrix-export-error.png?fit=247%2C75\" data-orig-size=\"247,75\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"citrix-export-error\" data-image-description=\"\" data-medium-file=\"https:\/\/i2.wp.com\/acrelinux.org\/wp-content\/uploads\/2015\/01\/citrix-export-error.png?fit=247%2C75\" data-large-file=\"https:\/\/i1.wp.com\/acrelinux.org\/wp-content\/uploads\/2015\/01\/citrix-export-error.png?fit=247%2C75\" \/><\/a><\/p>\n<p><!--more--><\/p>\n<p>A solu\u00e7\u00e3o para contornar esse tipo de problema \u00e9 a utiliza\u00e7\u00e3o do aplicativo xe.exe atrav\u00e9s do Prompt de Comando do Windows. Ent\u00e3o:<\/p>\n<p>1. Abra o Prompt de Comando do Windows;<\/p>\n<p>2. Entre no diret\u00f3rio<\/p>\n<pre class=\"brush: bash\">C:\\Users\\geowany&gt; cd \"C:\\Program Files (x86)\\Citrix\\XenCenter\"<\/pre>\n<p>3. Importe a VM do servidor XenServer diretamente para uma unidade de armazenamento da m\u00e1quina que est\u00e1 a executar o XenCenter com a seguinte sintaxe:<\/p>\n<pre class=\"brush: bash\">C:\\Program Files (x86)\\Citrix\\XenCenter&gt; xe.exe -s &lt;XENSERVER HOST&gt; -u root -pw \"&lt;SENHA&gt;\" vm-export vm=\"&lt;NOME DA VM&gt; filename=\"&lt;CAMINHO\\ARQUIVO.xva&gt;\"<\/pre>\n<p>4. Transferir o arquivo XVA para o servidor ProxMox (pode ser utilizado o Filezilla por exemplo).<\/p>\n<p>&nbsp;<\/p>\n<p><strong>CONVERTENDO A IMAGEM<\/strong><\/p>\n<p>O formato xva \u00e9 uma especificidade da plataforma Citrix e consiste em ser um empacotamento tar contendo metadados da VM e seus blocos de disco. Como exemplo, temos a seguinte estrutura:<\/p>\n<pre class=\"brush: bash\"># tar -tvf prod-icinga.xva\r\n---------- 0\/0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 30254 1969-12-31 19:00 ova.xml\r\n---------- 0\/0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 1048576 1969-12-31 19:00 Ref:4\/00000000\r\n---------- 0\/0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 40 1969-12-31 19:00 Ref:4\/00000000.checksum\r\n---------- 0\/0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 1048576 1969-12-31 19:00 Ref:4\/00000001\r\n---------- 0\/0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 40 1969-12-31 19:00 Ref:4\/00000001.checksum\r\n---------- 0\/0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 1048576 1969-12-31 19:00 Ref:4\/00000002\r\n---------- 0\/0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 40 1969-12-31 19:00 Ref:4\/00000002.checksum\r\n---------- 0\/0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 1048576 1969-12-31 19:00 Ref:4\/00000003\r\n---------- 0\/0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 40 1969-12-31 19:00 Ref:4\/00000003.checksum\r\n---------- 0\/0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 1048576 1969-12-31 19:00 Ref:4\/00000004\r\n\r\n...\r\n<\/pre>\n<p>O arquivo ova.xml possui uma s\u00e9rie de informa\u00e7\u00f5es, uma por objeto na base de dados xapi. Os objetos s\u00e3o vinculados com refer\u00eancias (Ref:xxx). Os dados do disco s\u00e3o armazenados em partes sequenciais\u00a0 com tamanho arbitr\u00e1rio, mas o tamanho comum \u00e9 1MiB. Para que possamos importar a VM no ProxMox, devemos converter os dados do disco atrav\u00e9s de um script em python. Dessa forma:<\/p>\n<p>1. Descompacte a imagem:<\/p>\n<pre class=\"brush: bash\"># tar -xvf arquivo.xva<\/pre>\n<p>2. Portanto, baixe o script:<\/p>\n<pre class=\"brush: bash\"># wget http:\/\/nerdier.co.uk\/xenmigrate.py<\/pre>\n<p>3. Converta o diret\u00f3rio para gerar a imagem do disco em formato raw:<\/p>\n<pre class=\"brush: bash\"># python xenmigrate.py -c Ref\\:4\/ disk.img<\/pre>\n<p>4. Converta a imagem de disco do formato raw para o formato qcow2:<\/p>\n<pre class=\"brush: bash\"># qemu-img convert disk.img -O qcow2 disk.qcow2<\/pre>\n<p><strong>IMPORTANDO A VM PARA O PROXMOX<\/strong><\/p>\n<p>Agora que possu\u00edmos a imagem do disco em formato qcow2, podemos criar uma nova m\u00e1quina virtual por meio da interface web do ProxMox. Mas atente-se para n\u00e3o iniciar a m\u00e1quina ainda. Antes disso, substitua a imagem de disco criada pela imagem convertida:<\/p>\n<pre class=\"brush: bash\"># cp disk.img \/var\/lib\/vz\/images\/&lt;VMID&gt;\/vm-&lt;ID&gt;-disk-1.qcow2<\/pre>\n<p>Finalmente podemos iniciar a m\u00e1quina!<\/p>\n<p><strong>AJUSTES NA VM<br \/>\n<\/strong>Pode ser que ocorra um problema que impede a inicializa\u00e7\u00e3o da VM. No meu caso, aconteceu com a distribui\u00e7\u00e3o Debian vers\u00e3o 7 que foi criada no XenCenter atrav\u00e9s de template para a respectiva distribui\u00e7\u00e3o e vers\u00e3o. Para resolver o problema, basta:<\/p>\n<p>1. Iniciar a VM e apertar \u201ce\u201d durante o boot para que possamos editar as op\u00e7\u00f5es do grub;<\/p>\n<p>2. Na linha \u201clinux\u201d, remover a op\u00e7\u00e3o \u201cconsole=hvc0\u201d e iniciar o sistema apertando F10:<br \/>\n<a href=\"https:\/\/i0.wp.com\/acrelinux.org\/wp-content\/uploads\/2015\/01\/proxmox-fix-grub-debian.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-710\" src=\"https:\/\/i2.wp.com\/acrelinux.org\/wp-content\/uploads\/2015\/01\/proxmox-fix-grub-debian.png?resize=640%2C572\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" srcset=\"https:\/\/i0.wp.com\/acrelinux.org\/wp-content\/uploads\/2015\/01\/proxmox-fix-grub-debian.png?w=645 645w, https:\/\/i2.wp.com\/acrelinux.org\/wp-content\/uploads\/2015\/01\/proxmox-fix-grub-debian.png?resize=300%2C268 300w\" alt=\"proxmox-fix-grub-debian\" width=\"638\" height=\"570\" data-attachment-id=\"710\" data-permalink=\"http:\/\/acrelinux.org\/migracao-de-maquina-virtual-do-citrix-xenserver-para-proxmox\/proxmox-fix-grub-debian\/#main\" data-orig-file=\"https:\/\/i1.wp.com\/acrelinux.org\/wp-content\/uploads\/2015\/01\/proxmox-fix-grub-debian.png?fit=645%2C576\" data-orig-size=\"645,576\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"proxmox-fix-grub-debian\" data-image-description=\"\" data-medium-file=\"https:\/\/i2.wp.com\/acrelinux.org\/wp-content\/uploads\/2015\/01\/proxmox-fix-grub-debian.png?fit=300%2C268\" data-large-file=\"https:\/\/i2.wp.com\/acrelinux.org\/wp-content\/uploads\/2015\/01\/proxmox-fix-grub-debian.png?fit=640%2C572\" \/><\/a><\/p>\n<p>3. Logar na VM e editar o arquivo do grub removendo a op\u00e7\u00e3o \u201cconsole=hvc0\u201d:<\/p>\n<pre class=\"brush: bash\"># vim \/etc\/default\/grub\r\nGRUB_CMDLINE_LINUX=\"\"<\/pre>\n<p>4. Atualizar o grub:<\/p>\n<pre class=\"brush: bash\"># update-grub2<\/pre>\n<p>5. Editar o arquivo inittab comentando a linha iniciada por \u201cco\u201d:<\/p>\n<pre class=\"brush: bash\"># vim \/etc\/inittab<\/pre>\n<p>6. Rebootar a VM:<\/p>\n<pre class=\"brush: bash\"># reboot<\/pre>\n<p>Repita os passos acima com as outras 40 VMs restantes.\u00a0?<\/p>\n","protected":false},"excerpt":{"rendered":"<p>INTRODU\u00c7\u00c3O Pretendo abordar nesse tutorial a migra\u00e7\u00e3o das m\u00e1quinas virtuais do Citrix XenServer para o ProxMox. Por mais que a vers\u00e3o 6.2 do Citrix XenServer\u00a0tenha se tornado 100% opensource, nunca fiquei 100% satisfeito com o XenCenter (ferramenta de gerenciamento do Citrix XenServer) ser disponibilizado apenas para Windows. Com isso,\u00a0 fui obrigado a ter uma m\u00e1quina [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[1082,1,730,830,42,51,495,1162,548,691,107],"tags":[1180,353,366,1179,173,355,693,421,109],"class_list":["post-4464","post","type-post","status-publish","format-standard","hentry","category-centos-7-rhel-7","category-viazap","category-clusterweb","category-debian","category-leitura-recomendada","category-linux-linuxrs","category-profissional-de-ti","category-proxmox","category-ubuntu-2","category-virtualizacao-2","category-xenserver","tag-citrix","tag-de","tag-do","tag-maquina","tag-migracao","tag-para","tag-proxmox","tag-virtual","tag-xenserver-2"],"_links":{"self":[{"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/posts\/4464","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=4464"}],"version-history":[{"count":1,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/posts\/4464\/revisions"}],"predecessor-version":[{"id":4465,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/posts\/4464\/revisions\/4465"}],"wp:attachment":[{"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=4464"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=4464"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=4464"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}