BEM VINDO AO BLOG DO MARCOS CARRARO CRIADOR DO "CARRARO DASHBOARD". MUITO MAIS QUE UM SIMPLES BLOG.

quarta-feira, 17 de junho de 2015

XenServer 6.5 - Adicionando Local Storage

Buenas,

O que veremos é a criação do localstorage na versão 6.5 do xenerver http://xenserver.org/ .

Primeira coisa é verificar as partições criadas...

# fdisk -l

WARNING: GPT (GUID Partition Table) detected on '/dev/cciss/c0d0'! The util fdisk doesn't support GPT. Use GNU Parted.


Disk /dev/cciss/c0d0: 500.0 GB, 500051402752 bytes
256 heads, 63 sectors/track, 60556 cylinders
Units = cylinders of 16128 * 512 = 8257536 bytes

           Device Boot      Start         End      Blocks   Id  System
/dev/cciss/c0d0p1   *           1       60557   488331447+  ee  EFI GPT


Perceba que ele tem apenas uma partição criada.... OK então você vai se perguntar mas como que uma VM de 12Gb não importa em um disco de 500GB? Logo fizemos um df para verificar o espaço utilizado do / "Não é surpresa que ele tenha 4Gb para a instalação" para mais informações http://xenserver.org/discuss-virtualization/virtualization-blog/entry/xenserver-root-disk-maintenance.html 

# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/cciss/c0d0p1     4.0G  1.8G  2.0G  49% /
none                  299M   16K  299M   1% /dev/shm
/opt/xensource/packages/iso/XenCenter.iso
                       56M   56M     0 100% /var/xen/xc-install

Ok, mas cada os outros GB???? Simples assim, vamos listar as partições dentro da partição..

# fdisk -l /dev/cciss/c0d0p1 

Disk /dev/cciss/c0d0p1: 4293 MB, 4293936128 bytes
255 heads, 32 sectors/track, 1027 cylinders
Units = cylinders of 8160 * 512 = 4177920 bytes

This doesn't look like a partition table
Probably you selected the wrong device.

             Device Boot      Start         End      Blocks   Id  System
/dev/cciss/c0d0p1p1   ?      395160      448208   216435558+   7  HPFS/NTFS
Partition 1 does not end on cylinder boundary.
/dev/cciss/c0d0p1p2   ?      400983      640378   976730017   16  Hidden FAT16
Partition 2 does not end on cylinder boundary.
/dev/cciss/c0d0p1p3   ?           1           1           0   6f  Unknown
Partition 3 does not end on cylinder boundary.
/dev/cciss/c0d0p1p4            6153      119429   462167897    0  Empty
Partition 4 does not end on cylinder boundary.

Partition table entries are not in disk order


SHOW!!! Perceba que o  /dev/cciss/c0d0p1p3 esta marcado como unknown então vamos verificar o que ela tem...

# fdisk -l /dev/cciss/c0d0p3 

Disk /dev/cciss/c0d0p3: 491.4 GB, 491460402688 bytes
255 heads, 32 sectors/track, 117632 cylinders
Units = cylinders of 8160 * 512 = 4177920 bytes

Disk /dev/cciss/c0d0p3 doesn't contain a valid partition table


BINGO! Esta nesta partição os outros GB escondidos.....

Agora o que nos resta é criar o Storage Local.

Primeiro você precisa o UUID so servidor para isso...

# xe host-list
uuid ( RO)                : 2df79ee1-a6b3-49aa-b272-22c13fbf4573
          name-label ( RW): xenserver3.interno.local
    name-description ( RW): Default install of XenServer

Copie o UUID (RO) pois você ira utilizar na hora de criar o Local Storage...

# xe sr-create content-type=user type=lvm host-uuid=2df79ee1-a6b3-49aa-b272-22c13fbf4573 device-config-device=/dev/cciss/c0d0p3 name-label="DISCO LOCAL" 
723420df-5342-c398-5f7c-45d5116a6b71

Pronto, storage local criado se for utilizar ele como default storage marque ele como default via XenCenter ou por CLI.

# xe pool-list
uuid ( RO)                : ee00c29a-64ac-fc8e-13a5-40a0308db86b
          name-label ( RW): 
    name-description ( RW): 
              master ( RO): 2df79ee1-a6b3-49aa-b272-22c13fbf4573
          default-SR ( RW): <not in database>

# xe pool-param-set uuid=ee00c29a-64ac-fc8e-13a5-40a0308db86b default-SR=723420df-5342-c398-5f7c-45d5116a6b71

Pronto, esta montado o LocalStorge.


Frankenstein - Nome dado ao meu querido servidor de testes que segura a barra de tudo...
Read More

terça-feira, 5 de maio de 2015

Ativando ou Reativando plugins: Java / SilverLight no Google Chrome >= 42

Buenas,

Como todos sabem o GoogleChrome teria desativado alguns plugins como Java, SilverLight entre outros (http://info.abril.com.br/noticias/tecnologia-pessoal/2014/11/silverlight-java-unity-e-outras-extensoes-populares-serao-removidas-do-google-chrome.shtml)

Para resolver o problema a solução é simples, primeiro certifique-se de estar com o Plugin devidamente instalado, feito isso verifique se o mesmo esta ativo digitando na url do GoogleChrome "chrome://plugins" caso não estiver ative.

Ok, plugin ativo, vamos ativar o NPAPI (https://developer.chrome.com/extensions/npapi), para tal na url escreve "chrome://flags/#enable-npapi" e ative caso ela não estiver ativa.


- Não esta Ativa



- Agora esta Ativa
 Bom Proveito

Forte Abraço
Marcos Carraro

Read More

quinta-feira, 12 de março de 2015

iptables + módulo time + conexões estabelecidas + conntrack

Buenas,

Montei recentemente na empresa uma rede para os funcionários somente acessarem a internet nos intervalos, porém meu proxy não esta configurado para tratar com as interceptações https, como os acessos serão feitos por mobile wpad não funcionária como esperado, a solução seria fazer o redirecionamento por iptables no qual cai na falta da configuração do proxy.

Solução, fazer um forward da rede funcionários para a rede externa somente nos horários, show, rápido fácil e focado.

iptables -A FORWARD -s 192.168.20.0/255.255.255.0 -m time --timestart 00:00:00 --timestop 11:55:00 --weekdays Sun,Mon,Tue,Wed,Thu,Fri,Sat -j DROP

iptables -A FORWARD -s 192.168.20.0/255.255.255.0 -m time --timestart 21:59:00 --timestop 23:59:00 --weekdays Sun,Mon,Tue,Wed,Thu,Fri,Sat -j DROP

iptables -A FORWARD -s 192.168.20.0/255.255.255.0 -m time --timestart 12:55:00 --timestop 21:00:00 --weekdays Sun,Mon,Tue,Wed,Thu,Fri,Sat -j DROP

Ok, fiz o teste show, as conexões com estado "new" fora desse horário é dropada, porém se o usuário acessa as 12:54 a conexão dele passa de "new" para "established", com isso ele teria esse canal fechado até o término da conexão por uma das partes.

Ali começou o problema, pois eu tinha que garantir que a conexão seria morta neste horário, pois o bem o iptables faz um rastreamento das conexões chamdo de conntrack, logo já tinha uma solução, apagar as entradas da rede no conntrack, assim eu faria com que a conexão solicita-se novamente o registro para o acesso, e como iria bater com a regra pois a conexão seria "new" o pacote seria dropado, tá feita a solução.

Para isso nada melhor que a crontab e um script.

Na crontab coloco para rodar alguns minutos depois do tempo final do intervalo para garantir que ninguém vai ficar de bobeira.

Lista as entradas da rede funcionários, sem repetir
# conntrack -L conntrack |  awk '{print $5}' | grep src=192.168.20. | sed -e "s/src=//g" | sort | uniq

Apaga a entrada
# conntrack -D -s 192.168.20.88


#!/bin/bash
conntrack -L conntrack |  awk '{print $5}' | grep src=192.168.20. | sed -e "s/src=//g" | sort | uniq |
    while read ip; do
        conntrack -D -s $ip > /dev/null
done



Read More

quarta-feira, 25 de fevereiro de 2015

Resolver problema Download .zip com PHP Corrompendo + Limitando Velocidade de Download de Arquivo com PHP

Bom Dia,


Hoje finalizei um sistema e por incrível que parece por algum motivo estranho ele corrompia os downloads em zip, fazendo algumas buscas comentaram do mod deflat do apache, onde ele faz a compressão dos arquivos para melhorar a performance do site e ocupar menos banda (Para testes:  http://www.whatsmyip.org/http-compression-test/  ) .

Ok, então no meu .htaccess inseri a seguinte linha.

<IfModule mod_deflate.c>
    AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/x-javascript application/javascript application/ecmascript application/rss+xml
</IfModule>

Onde segundo ele deveria apenas compactar estes "mimes types", porém ele acabou compactando o .zip achei estranho, porém acabou resolvendo o problema, ainda fiquei "encucado" com o porque que ele compactou sendo que não declarei ele.

Download do zip resolvido é hora de ir para o php, onde vamos limitar a velocidade do download do usuário.

            // header para forçar download
            header('Content-Description', 'File Transfer');
            header('Pragma: public');
            header('Expires: 0');
            header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
            header('Cache-Control: private', false);
            header('Content-Type: application/octet-stream');
            header('Content-Disposition: attachment; filename="arquivo.zip"'); // Nome do arquivo
            header('Content-Transfer-Encoding: binary');
            header('Content-Length: ' . filesize('./upload/arquivo.zip'));
            header('Connection: close');
            // Metodo com limitacao de banda para 150k
            flush();
            $arqAberto = fopen("./upload/arquivo.zip", 'rb');
            while (!feof($arqAberto)) {
                echo fread($arqAberto, round(150 * 1024));
                flush();
                sleep(1);
            }
            fclose($arqAberto);


Forte abraço
Marcos Carraro.


Read More

segunda-feira, 23 de fevereiro de 2015

Testando "throughput" de rede

Boa Noite,

Pessoal, hoje vamos ver como fazer um teste de carga na rede / servidor.

Partindo do princípio que você esteja usando Centos/Fedora instale no servidor e no cliente o pacote "iperf"

No servidor vamos colocar ele em modo de "escuta"

# Ip Servidor: 192.168.1.1
# iperf -s

Cliente
# iperf -c 192.168.1.1

Agora vamos aumentar o tamanho do buffer para 10mb, para fazer isso utilize o parâmetro "-w 10M" de 10M pode ser até 10G

Exemplos

# Ip Servidor: 192.168.1.1
# iperf -s -w 10M

Cliente
# iperf -c 192.168.1.1 -w 10M

Agora faça a leitura deste arquivo para otimizar alguns parâmetros do kernel para melhorar a rede
https://www.frozentux.net/documents/ipsysctl-tutorial/

Tem um link no digitalocean que não consigo encontrar que também tratava dos parâmetros de kernel era mais direto ao ponto.

Mais informações
https://iperf.fr/

Obs:. O ideal é antes de botar para funcionar os novos parâmetros é de salvar o valor default do mesmo, pois as vezes existe a melhora como pode piorar.

Bons Testes
Read More

quarta-feira, 7 de janeiro de 2015

Criando uma ISO Customizada do Centos 6.6 + Incluir pacote na ISO

Buenas, feliz ano novo que 2015 seja ótimo.

Hoje vamos ver como criar uma instalação personalizada do centos utilizando o Kickstart não vou explicar linha por linha do arquivo pois no site do Fedora existe um documento completo referente a ele.

1- Preparação do diretório, vamos trabalhar na home do usuário root, para isso.
# su root
# cd ~
# mkdir build

2 - Faça o download da ISO no site do centos
# cd ~
# wget http://centos.ufms.br/6.6/isos/x86_64/CentOS-6.6-x86_64-minimal.iso

3 - Monte a ISO e extraia o seu conteudo para  a pasta build
# mount -o loop CentOS-6.6-x86_64-minimal.iso /mnt
# cd /mnt
# tar -cf - . | (cd ~/build/ ; tar -xvpf - )
# umout /mnt

4 - Crie o arquivo Kickstart Obs:. Segue um kickstart bem simples
# vim ~/build/ks.cfg
=======================================================================

#
# Marcos Carraro - Kickstart
#
# SO: Centos 6.6 x64
# Desc: Centos minimal, ainda mais leve com pequenas alteracoes, criacao da estrutura dos arquivos em LVM\
#  ip default: 15.0.0.1/24 | senha root default: abc123! | No minimo 10gb de disco e 1gb de memoria
#
#

install
cdrom
lang pt_BR.UTF-8
keyboard br-abnt2
network --onboot yes --device eth0 --bootproto static --ip 15.0.0.1 --netmask 255.255.255.0 --noipv6 --hostname atomicserver
rootpw  --iscrypted $6$Dr2vTVfUFzXVwn.t$n2hGfw0pa/cv7W.e/z21glUPkMHZAlsVAfB/NFxWBCjQZlQPWQwQjs1L6kuzghRqYzjL5AghYuXSv/EoceYjO0
firewall --disabled
authconfig --enableshadow --passalgo=sha512
selinux --disabled
timezone --utc America/Sao_Paulo


#
# Disco e particionamento
#
bootloader --location=mbr --driveorder=sda --append="crashkernel=auto quiet"
#clearpart --all --initlabel --drives=sda
clearpart --all --initlabel

part /boot --fstype=ext4 --asprimary --size=256
part pv.202002 --grow --size=200

volgroup vg_disco --pesize=4096 pv.202002
logvol swap --name=lv_swap --vgname=vg_disco --size=1024
logvol / --fstype=ext4 --name=lv_tudo --vgname=vg_disco --size=1024
logvol /var  --fstype=ext4 --name=lv_var --vgname=vg_disco --size=1024

#
# Repositorio para instalar os pacotes
#
repo --name="CentOS"  --baseurl=file:///mnt/source --cost=100

#
# Desabilita alguns servicos
#
services --disabled=auditd,ip6tables,iptables,mdmonitor

#
# pacotes que serao instalados
#
%packages --nobase --excludedocs

#
# Instalar pacotes...
#
@core
perl
tcpdump
bc
vconfig
vim-common
vim-enhanced
traceroute
bind-utils

#
# Remover pacotes...
#
-selinux*
-libselinux*
-dhclient*
-mdadm*

%end

#
# Reinicia o servidor apos a instalacao
#
reboot

=======================================================================

5 - Instale o plugin do yum para baixar os pacotes
# yum install yum-plugin-downloadonly

6 - Baixe os pacotes que deseja incluir no nosso caso  o vim, traceroute, bind-utils, vconfig, bc
# yum install --downloadonly --downloaddir=~/build/Packages/ $(repoquery --requires tcpdump vim-common vim-enhanced bc vconfig traceroute bind-utils perl perl-libs)
# yum install --downloadonly --downloaddir=~/build/Packages/ tcpdump vim-common vim-enhanced bc vconfig traceroute bind-utils perl perl-libs

7 - Atualize o repositório da ISO.
# cd ~/build/
# createrepo -v --update -g `find repodata -iname *minimal*.xml` .

8 - Criar as entradas no menu de boot
# vim isolinux/isolinux.cfg
Adicione as seguintes linhas logo acima do "label linux"
Obs:. Lembre de remover o "menu default" da entrada do "lavel linux"

label AtomicServer
  menu label ^Instalacao do Centos Customizado
  menu default
  kernel vmlinuz
  append initrd=initrd.img ks=cdrom:/ks.cfg nomodeset

9 - Crie a iso
# cd ~/build
# mkisofs -joliet-long -z -T -o ../Centos-6.6-x64_Customizado.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -R -m TRANS.TBL .

10 - Instale ele.

Forte abraço
Marcos Carraro


Read More

domingo, 21 de dezembro de 2014

XenServer 6.4 + Windows 2012 Server + Lenovo T400 Erro Windows: C4

Buenas,

Tenho um Lenovo T400 que fiz dele meu LAB (bom e barato, com alguns ajustes bala!!!), porém ao instalar o Windows 2012 sever, ele retorna um erro..

Em algumas pesquisas na Internet encontrei que o problema é referente a uma proteção de memoria que na grande maioria dos computadores/servidores/notebooks esta presente, chama-se "Memory Protection", em outros hardwares pode ter outro nome como "no-Execution Memory Protection" mas todas com o mesmo intuito, de impedir que códigos maliciosos sejam executados na memoria, e sim o Windows 2012/ Windows 8 reclamam por esta feature não estar habilitada.

Meu ambiente é o Xenserver 6.4 (Mentira dele!!! Estou usando a versão open do xenserver em xenserver.org).

Para habilitar esta opção acesse a  "Bios", após vá em "Security", depois "Memory Protection", depois habilite a opção "Execution Prevention".

Feito isso salve as alterações e inicie o Sistema novamente.

Pronto, problema resolvido.

Agora bom proveito, e um forte abraço.


Marcos Carraro.
Read More

Posts que a turma mais esta lendo...

Posts que a turma mais esta lendo...

Marcos Carraro