terça-feira, 31 de outubro de 2017

How to enable execution of PowerShell scripts?

  1. Start Windows PowerShell with the "Run as Administrator" option. Only members of the Administrators group on the computer can change the execution policy.

  2. Enable running unsigned scripts by entering:

    set-executionpolicy remotesigned
    

This will allow running unsigned scripts that you write on your local computer and signed scripts from Internet.

Fonte: https://superuser.com/questions/106360/how-to-enable-execution-of-powershell-scripts

segunda-feira, 28 de agosto de 2017

Problemas com extensão telefónica asterisk


List DND-enabled extensions

Se o DND estiver configurado usando o recurso DND do IP-Phone, então não há como você pode listá-los. Caso contrário, se estiver configurado usando o código do recurso FreePBX (* 78), então aqui está a maneira de fazê-lo:

image

No prompt do linux run:
# asterisk -rx “database show DND” or

#asterisk -rx “database show” | grep “/DND/”

# asterisk -rx "database show DND"
/DND/1002                                         : YES
/DND/1004                                         : YES
/DND/1006                                         : YES
/DND/1007                                         : YES

To remove DND from an extension run:

# asterisk -rx “database del DND ext.”



To enable DND manully for an extension run:

# asterisk -rx “database put DND ext. YES”

# asterisk -rx "database put DND 1002 YES"
Updated database successfully

# asterisk -rx "database show DND"
/DND/1002                                         : YES 

fonte: http://www.mehrdust.com/archives/how-to-list-all-dnd-enable-extensions

sexta-feira, 17 de fevereiro de 2017

Variáveis ​​de ambiente

 

Uma variável de ambiente é um valor dinâmico carregado na memória que pode ser usado por vários processos operando simultaneamente. Na maioria dos sistemas operacionais, a localização de algumas bibliotecas ou dos executáveis ​​principais do sistema pode ser diferente dependendo da instalação.
Portanto, é possível, a partir de um determinado programa, fazer referência a um local baseado nas variáveis ​​de ambiente que definem esses dados.

 

Em Windows

No Windows, as variáveis ​​de ambiente são colocadas entre o caractere "%". Assim, para exibir o valor de uma variável de ambiente, basta digitar o seguinte tipo de comando:
Echo % NAME_OF_THE_VARIABLE %

Aqui está uma lista não exaustiva das principais variáveis ​​de ambiente em sistemas Windows:

Variável de ambiente
Descrição
%APPDATA%
Retorna um caminho de acesso para o diretório padrão contendo os programas do usuário (por padrão: C: \ Arquivos deProgramas \ .
% CMDCMDLINE%
Retorna o comando exato usado para acessar o interpretador de comandos ( cmd.exe ).
%COMPUTERNAME%
Retorna o nome atribuído ao computador.
%DATE%
Retorna a data do dia.
% ERRORLEVEL%
Contém o código de erro do último comando utilizado.
% HOMEDRIVE%
Contém a letra da unidade na qual o diretório do usuário atual está localizado.
% HOMEPATH%
Contém o caminho de acesso completo ao diretório do usuário atual.
% NUMBER_OF_PROCESSOR%
Contém o número de processadores presentes no sistema.
% OS%
Contém uma cadeia de caracteres descrevendo o sistema operacional instalado. Observe que Windows 2000 é identificado como WINDOWS_NT .
%PATH%
Especifica o caminho de acesso aos principais executáveis ​​do sistema.
% PATHEXT%
Descreve as extensões que o sistema considera executáveis.
% PROCESSOR_ARCHITECTURE%
Descreve a arquitetura do processador ( x86 para máquinas Intel, IA64 para arquiteturas RISC).
%RANDOM%
Retorna um inteiro entre 0 e 32167 escolhido aleatoriamente pelo sistema.
% SYSTEMDRIVE%
Contém a letra da unidade em que o sistema está localizado (geralmente C :) .
% SYSTEMROOT%
Contém o caminho de acesso ao diretório raiz do sistema.
% TEMP%
Contém o caminho de acesso de diretório temporário para os aplicativos.
% TMP%
Contém o caminho de acesso de diretório temporário para os aplicativos.
%TIME%
Retorna a data do dia.
% USERDOMAIN%
Contém o domínio ao qual pertence a conta atual.
% USERNAME%
Contém o nome de usuário correspondente à conta atual.
%USERPROFILE%
Contém a localização do perfil de usuário da conta atual.
% WINDIR%
Contém o caminho de acesso ao diretório do sistema (geralmente C: \ WINDOWS ou C: \ WINNT ).

No Windows, o comando set permite a criação, modificação e exibição das variáveis ​​de ambiente. No entanto, as alterações são feitas apenas na sessão em andamento.
Para exibir uma variável, o seguinte comando é usado:
Set VariableName
Para criar uma variável, o seguinte comando é usado:
Set VariableName = value
Para excluir uma variável, o seguinte comando é usado:
Set VariableName =
É possível usar qualquer caractere como um valor, incluindo espaços. No entanto, para poder usar caracteres especiais (<,>, |, & ou ^), basta colocar o caractere de escape (^) na frente deles ou aspas em torno deles, que será parte do valor, uma vez que todos os caracteres Após o sinal =são tidos em conta. Por exemplo, para definir "preto & branco" como o valor:
Set color = black ^ & white
ou
set varname = "novo & nome"

 

Em UNIX

Em sistemas UNIX , as variáveis ​​de ambiente são precedidas pelo caractere "$" e colocadas entre chaves, mesmo que as chaves não são obrigatórias. Dada a variedade de sistemas UNIX (particularmente as diferentes distribuições do Linux ), as variáveis ​​de ambiente Assim, para exibir o valor de uma variável de ambiente, basta digitar um dos seguintes comandos:
Echo $ VARIABLE
echo $ { VARIABLE }

 

Aqui está uma lista não exaustiva das principais variáveis ​​de ambiente em sistemas UNIX:

Variável de ambiente
Descrição
$ ARCH
Contém a descrição da arquitetura da máquina.
$ DISPLAY
Contém a ID do terminal de exibição a ser usado no administrador da janela (X11).
$ HOME
Retorna o caminho de acesso ao diretório do usuário atual.
$ HOST
Retorna o nome do computador.
$ LANG
Retorna o código de idioma padrão.
$ PATH
Retorna uma lista de caminhos de acesso para diretórios que contêm executáveis, separados por ponto e vírgula.
$ PRINTER
Contém o nome da impressora padrão.
$ SHELL
Indica o caminho do interpretador de comandos utilizado.
$ USER
Retorna o ID do usuário atual.

quarta-feira, 8 de fevereiro de 2017

Configurar Local DB SQL Server

Para podermos configurar uma base de dados local do Sql Server, criado por exemplo através do Visual Studio, podemos usar o comando sqllocaldb conforme as opções abaixo

 
C:\Windows\System32\>sqllocaldb /?
Microsoft (R) SQL Server Express LocalDB Command Line Tool
Version 13.0.1601.5
Copyright (c) Microsoft Corporation.  All rights reserved.
Usage: SqlLocalDB operation [parameters...]
Operations:
-?
    Prints this information
create|c ["instance name" [version-number] [-s]]
    Creates a new LocalDB instance with a specified name and version
    If the [version-number] parameter is omitted, it defaults to the
    latest LocalDB version installed in the system.
    -s starts the new LocalDB instance after it's created
delete|d ["instance name"]
    Deletes the LocalDB instance with the specified name
start|s ["instance name"]
    Starts the LocalDB instance with the specified name
stop|p ["instance name" [-i|-k]]
    Stops the LocalDB instance with the specified name,
    after current queries finish
-i request LocalDB instance shutdown with NOWAIT option
-k kills LocalDB instance process without contacting it
share|h ["owner SID or account"] "private name" "shared name"
    Shares the specified private instance using the specified shared name.
    If the user SID or account name is omitted, it defaults to current user.
unshare|u ["shared name"]
    Stops the sharing of the specified shared LocalDB instance.
info|i
    Lists all existing LocalDB instances owned by the current user
    and all shared LocalDB instances.
info|i "instance name"
    Prints the information about the specified LocalDB instance.
versions|v
    Lists all LocalDB versions installed on the computer.
trace|t on|off
    Turns tracing on and off
SqlLocalDB treats spaces as delimiters. It is necessary to surround
instance names that contain spaces and special characters with quotes.
For example:
   SqlLocalDB create "My LocalDB Instance"
The instance name can sometimes be omitted, as indicated above, or
specified as "". In this case, the reference is to the default LocalDB
instance "MSSQLLocalDB".

segunda-feira, 6 de fevereiro de 2017

Configurar IIS para Mapguide Open Source

Instalar MapGuide 2.4 on IIS

Instruções passo a passo para instalar MapGuide 2.4 no IIS.

Estas instruções devem também trabalhar com MapGuide 2.5 / 2.6. Renomeie ocorrências de "2.4" e "24", com o correspondente MapGuide versão.

Prerequisite: Microsoft .NET Framework 4

If Microsoft .NET Framework 4 or 4.5 is not installed, install ​Microsoft .NET Framework 4 (Web Installer).

Pré-requisitos: IIS

Windows Server 2008

  1. Open Start -> Server Manager -> Roles
  2. Roles Summary -> If "Web Server (IIS)" is not installed, Add Role
  3. Web Server (IIS) -> Add Role Services
  4. Install
    • Web Server (IIS) -> Application Development Features -> ASP.NET, which also installs .NET Extensibility, ISAPI Extensions and ISAPI Filters
    • Web Server (IIS) -> Application Development Features -> CGI, which also enables FastCGI in IIS7 and above
      clip_image001[7]

Windows 7 e 10

  1. Open Start -> Control Panel -> Programs -> Programs and Features -> Turn Windows features on or off
  2. Install
    • Internet Information Services, which also installs several default features
    • Internet Information Services -> World Wide Web Services -> Application Development Features -> ASP.NET, which also installs .NET Extensibility, ISAPI Extensions and ISAPI Filters
    • Internet Information Services -> World Wide Web Services -> Application Development Features -> CGI, which also enables FastCGI in IIS7 and above
      clip_image002[6]

Manual configuration: IIS

If MapGuide has been installed with a manual configuration, IIS will need to be manually configured.

  1. For Windows 7, open Start -> Control Panel -> System and Security -> Administrative Tools -> Internet Information Services (IIS) Manager
  2. Open [root]\Application Pools -> Actions -> Add Application Pool...
    • Name: MapGuide24AppPool
    • .NET Framework version: .NET Framework v4.0.30319
    • Managed pipeline mode: Integrated
  3. Tb podemos ter em alternativa para Mapguide 2.0
    • .NET Framework version: .NET Framework v2.0.50727
    • Managed pipeline mode: classic
    • Start application pool immediately: True
      clip_image003[6] clip_image005[6]
  1. IMPORTANTE……MUITO IMPORTANTE

Se não abrigarmos a corrermos o aplicativo em 32bits poderemos ter erros como no caso do fgci

clip_image007[6]

Mais à frente vamos configurar no passo 6 vamos configurar o módulo ISAPI para correr mapagent\isapi_MapAgent.dll

Ao criarmos este módulo ele adiciona ao webconfig a primitiva preCondition="bitness32". Ou seja, o IIS só corre o módulo ISAPi caso corra em 32 bits.

Como está a correr a 64 bits ele ignora a configuração e tenta correr a aplicação como se de um ficheiro estático se tratasse.

Para ultrapassar isso devemos forçar a aplicação criada MapGuide24AppPool, a correr a 32bits.

clip_image009[6]clip_image011[6]

  1. Open [root] -> FastCGI Settings (If there is no FastCGI Settings (ie. Windows Server 2008), install ​IIS 7.0 Administration Pack) -> Actions -> Add Application...
    • Full Path: C:\Program Files\OSGeo\MapGuide\Web\Php\php-cgi.exe
    • FastCGI Properties:
      • Max Instances: 0
      • Activity Timeout: 70

clip_image012[6]

  1. Open [root] -> ISAPI and CGI Restrictions -> Actions -> Add...
    • ISAPI or CGI path: C:\Program Files\OSGeo\MapGuide\Web\www\mapagent\isapi_MapAgent.dll
    • Description: MapGuide 2.4 MapAgent? ISAPI handle
    • Allow extension path to execute: True
      clip_image013[6]
  2. Open [root] -> MIME Types -> Actions -> Add...
    • File name extension: .json
    • MIME type: application/json
      clip_image014[6]
  3. Open [root]\Sites\Default Web Site -> Actions -> View Applications -> Actions -> Add Application...
    • Alias: mapguide
    • Application pool: MapGuide24AppPool (or MapGuide25AppPool)
    • Physical path: C:\Program Files\OSGeo\MapGuide\Web\www
      clip_image015[6]
  4. Open [root]\Sites\Default Web Site\mapguide -> Error Pages -> Select "401" -> Actions -> Remove
    • Are you sure that you want to remove the selected custom error page? Yes
  5. Open [root]\Sites\Default Web Site\mapguide -> Handler Mappings -> Actions -> Add Module Mapping...
    • Request path: *.php
    • Module: FastCgiModule?
    • Executable (optional): C:\Program Files\OSGeo\MapGuide\Web\Php\php-cgi.exe
    • Name: MapGuide_2.4_PHP_via_FastCGI
      clip_image016[6]
    • Do you want to create a FastCGI application for this executable? Yes
  6. Right-click [root]\Sites\Default Web Site\mapguide\mapagent -> Convert to Application
    • Alias: mapagent
    • Application pool: MapGuide24AppPool
    • Physical path: C:\Program Files\OSGeo\MapGuide\Web\www\mapagent
      clip_image017[6]
  7. Open [root]\Sites\Default Web Site\mapguide\mapagent -> Handler Mappings -> Select "CGI-exe" -> Actions -> Edit Feature Permissions...
    • Read: True
    • Write: True
    • Execute: True
      clip_image018[6]
  8. Open [root]\Sites\Default Web Site\mapguide\mapagent -> Handler Mappings -> Actions -> Add Script Map...
    • Request path: mapagent.fcgi
    • Executable: C:\Program Files\OSGeo\MapGuide\Web\www\mapagent\isapi_MapAgent.dll
    • Name: MapGuide 2.4 MapAgent? ISAPI handler
      clip_image019[6]
    • Open Request Restrictions...
      • Mappings -> Invoke handler only if request is mapped to: False
        clip_image020[6]
    • Do you want to allow this ISAPI extension? Yes
  9. Right-click [root]\Sites\Default Web Site\mapguide\mapviewernet -> Convert to Application
    • Alias: mapviewernet
    • Application pool: MapGuide24AppPool (or MapGuide25AppPool)
    • Physical path: C:\Program Files\OSGeo\MapGuide\Web\www\mapviewernet
      clip_image021[6]
  10. For .NET API: Right-click [root]\Sites\Default Web Site\mapguide -> Add Application...
    • Alias: mapviewerajax
    • Application pool: MapGuide24AppPool
    • Physical path: C:\Program Files\OSGeo\MapGuide\Web\www\mapviewernet
      clip_image022[6]
  11. For .NET API: Open [root]\Sites\Default Web Site\mapguide\mapviewerajax -> Default Document -> Add...
    • Name: ajaxviewer.aspx

Test

  1. http://192.168.1.14/mapguide/mapagent/mapagent.fcgi
  1. Open http:
    localhost\mapguide\mapagent\index.html -> Other -> Create Session -> Submit
    • Username: Administrator
    • Password: admin

terça-feira, 31 de janeiro de 2017

Níveis de RAID

Níveis de RAID são as várias maneiras de combinar discos para um fim.
RAID
O sistema RAID consiste em um conjunto de dois ou mais discos rígidos com dois objetivos básicos:
  1. tornar o sistema de disco mais rápido (isto é, acelerar o carregamento de dados do disco), através de uma técnica chamada divisão de dados (data striping ou RAID 0);
  2. tornar o sistema de disco mais seguro, através de uma técnica chamada espelhamento (mirroring ou RAID 1).
Essas duas técnicas podem ser usadas isoladamente ou em conjunto.

Vetor RAID 0 Linear

É uma simples concatenação de partições para criar uma grande partição virtual.

RAID 0 (Striping)

https://upload.wikimedia.org/wikipedia/commons/thumb/f/f2/Raid-0.jpg/275px-Raid-0.jpghttps://upload.wikimedia.org/wikipedia/commons/thumb/6/63/RAID_0.png/200px-RAID_0.png
No striping, ou distribuição, os dados são subdivididos em segmentos consecutivos (stripes, ou faixas) que são escritos sequencialmente através de cada um dos discos de um array, ou conjunto. Cada segmento tem um tamanho definido em blocos. A distribuição, ou striping, oferece melhor desempenho comparado a discos individuais, se o tamanho de cada segmento for ajustado de acordo com a aplicação que utilizará o conjunto, ou array.
Há problemas de confiabilidade e desempenho. RAID-0 não terá desempenho desejado com sistemas operacionais que não oferecem suporte a busca combinada de setores. Uma desvantagem desta organização é que a confiança se torna geometricamente pior. Um disco SLED com um tempo médio de vida de 20.000 horas será 4 vezes mais seguro do que 4 discos funcionando em paralelo com RAID 0 (admitindo-se que a capacidade de armazenamento somada dos quatro discos for igual ao do disco SLED). Como não existe redundância, não há confiabilidade neste tipo de organização.
Vantagens:
  • acesso rápido as informações
  • custo baixo para expansão de memória.
Desvantagens:
  • caso algum dos setores de algum dos HD’s venha a apresentar perda de informações, o mesmo arquivo que está dividido entre os mesmos setores dos demais HD’s não terá mais sentido existir, pois uma parte do arquivo foi corrompida, ou seja, caso algum disco falhe, não tem como recuperar;
  • não é usada paridade.

RAID 1 (Mirror)

https://upload.wikimedia.org/wikipedia/commons/thumb/f/fe/Raid-1.jpg/250px-Raid-1.jpghttps://upload.wikimedia.org/wikipedia/commons/thumb/a/a1/RAID_1.png/200px-RAID_1.png
RAID-1 é o nível de RAID que implementa o espelhamento de disco, também conhecido como mirror. Para esta implementação são necessários no mínimo dois discos ou mais desde que seja utilizado sempre um número par. O funcionamento deste nível é simples: todos os dados são gravados em dois discos diferentes; se um disco falhar ou for removido, os dados preservados no outro disco permitem a não descontinuidade da operação do sistema.
Vantagens:
  • caso algum setor de um dos discos venha a falhar, basta recuperar o setor defeituoso copiando os arquivos contidos do segundo disco;
  • segurança nos dados (com relação a possíveis defeitos que possam ocorrer no HD).
Desvantagens:
  • custo relativamente alto se comparado ao RAID 0;
  • ocorre aumento no tempo de escrita;

RAID 2

O RAID 2 surgiu no final dos anos 80, onde os HDs não possuíam checagem de erros. Assim, pode-se dizer que o RAID 2 é similar ao RAID 0, mas possuindo algoritmos de Hamming ECC (Error Correcting Code), que é a informação de controle de erros, no lugar da paridade. Além disso, pode-se ter várias configurações, como 10 discos normais + 4 discos somente para ECC. Este fato possibilita uma proteção adicional, porém o RAID 2 ficou obsoleto pelas novas tecnologias de disco já possuírem este tipo de correção internamente. O RAID 2 origina uma maior consistência dos dados se houver queda de energia durante a escrita. Baterias de segurança e um encerramento correto podem oferecer os mesmos benefícios.
Vantagem:
  • usa ECC, diminuindo a quase zero as taxas de erro, mesmo com falhas de energia.
Desvantagem:
  • hoje em dia, há tecnologias melhores para o mesmo fim.
  • dependendo da configuração e necessidade da empresa, era necessário a mesma quantidade de discos ECC para discos normais, isto é, desperdício de espaço que poderia ser usado para dados.

RAID 3

https://upload.wikimedia.org/wikipedia/commons/thumb/0/05/Raid-3.jpg/275px-Raid-3.jpg
O RAID 3 é uma versão simplificada do RAID nível 2. Nesse arranjo, um único bit de paridade é computado para cada palavra de dados e escrito em um drive de paridade. À primeira vista, pode parecer que um único bit de paridade dá somente detecção de erro, e não correção de erro. Para o caso de erros aleatórios não detectados, essa observação é verdadeira. Todavia, para o caso de uma falha de drive, ela provê correção total de erros de um bit, uma vez que a posição do bit defeituoso é conhecida. Se um drive falhar, o controlador apenas finge que todos os seus bits são "zeros". Se uma palavra apresentar erro de paridade, o bit que vem do drive extinto deve ter sido um "um", portanto, é corrigido.
A fim de evitar o atraso em razão da latência rotacional, o RAID 3 exige que todos os eixos das unidades de disco estejam sincronizados. A maioria das unidades de disco mais recentes não possuem a opção de sincronização do eixo, ou se são capazes disto, faltam os conectores necessários, cabos e documentação do fabricante.
Vantagens:
  • leitura rápida;
  • escrita rápida;
  • possui controle de erros.
Desvantagem:
  • Montagem difícil via software.

RAID 4

O RAID 4 funciona com três ou mais discos iguais. Um dos discos guarda a paridade (uma forma de soma de segurança) da informação contida nos discos. Se algum dos discos avariar, a paridade pode ser imediatamente utilizada para reconstituir o seu conteúdo. Os discos restantes, usados para armazenar dados, são configurados para usarem segmentos suficientemente grandes (tamanho medido em blocos) para acomodar um registro inteiro. Isto permite leituras independentes da informação armazenada, fazendo do RAID 4 um array perfeitamente ajustado para ambientes transacionais que requerem muitas leituras pequenas e simultâneas.
O RAID 4 assim como outros RAID's, cuja característica é utilizarem paridade, usam um processo de recuperação de dados mais envolvente que arrays espelhados, como RAID 1. Este nível também é útil para criar discos virtuais de grande dimensão, pois consegue somar o espaço total oferecido por todos os discos, exceto o disco de paridade. O desempenho oferecido é razoável nas operações de leitura, pois podem ser utilizados todos os discos em simultâneo.
Sempre que os dados são escritos no array, as informações são lidas do disco de paridade e um novo dado sobre paridade deve ser escrito para o respetivo disco antes da próxima requisição de escrita ser realizada. Por causa dessas duas operações de I/O, o disco de paridade é o factor limitante do desempenho total do array. Devido ao facto de o disco requerer somente um disco adicional para proteção de dados, este RAID é mais acessível em termos monetários que a implementação do RAID 1.
Vantagens:
  • taxa de leitura rápida;
  • possibilidade do aumento de área de discos físicos.
Desvantagens:
  • taxa de gravação lenta;
  • em comparação com o RAID 1, em caso de falha do disco, a reconstrução é difícil, pois o RAID 1 já tem o dado pronto no disco espelhado;
  • tecnologia não mais usada por haver melhores para o mesmo fim.

RAID 5

https://upload.wikimedia.org/wikipedia/commons/thumb/4/42/Raid-5.jpg/275px-Raid-5.jpghttps://upload.wikimedia.org/wikipedia/commons/thumb/f/fc/RAID5.png/200px-RAID5.png
O RAID 5 é frequentemente usado e funciona similarmente ao RAID 4, mas supera alguns dos problemas mais comuns sofridos por esse tipo. As informações sobre paridade para os dados do array são distribuídas ao longo de todos os discos do array , ao invés de serem armazenadas num disco dedicado, oferecendo assim mais desempenho que o RAID 4, e, simultaneamente, tolerância a falhas.
Para aumentar o desempenho de leitura de um array RAID 5, o tamanho de cada segmento em que os dados são divididos pode ser optimizado para o array que estiver a ser utilizado. O desempenho geral de um array RAID 5 é equivalente ao de um RAID 4, excepto no caso de leituras sequenciais, que reduzem a eficiência dos algoritmos de leitura por causa da distribuição das informações sobre paridade. A informação sobre paridade é distribuída por todos os discos; perdendo-se um, reduz-se a disponibilidade de ambos os dados e a paridade, até à recuperação do disco que falhou. Isto causa degradação do desempenho de leitura e de escrita.
Vantagens:
  • maior rapidez com tratamento de ECC;
  • leitura rápida (porém escrita não tão rápida).
Desvantagem:
  • sistema complexo de controle dos HDs.(discos)

RAID 6

É um padrão relativamente novo, suportado por apenas algumas controladoras. É semelhante ao RAID 5, porém usa o dobro de bits de paridade, garantindo a integridade dos dados caso até 2 dos HDs falhem ao mesmo tempo. Mínimo de 4 HDs para ser implementado. Ao usar 8 HDs de 20 GB cada um, em RAID 6, teremos 120 GB de dados e 40 GB de paridade.
Vantagem:
  • possibilidade falhar 2 HDs ao mesmo tempo sem perdas.
Desvantagens:
  • precisa de N+2 HDs para implementar por causa dos discos de paridade;
  • escrita lenta;
  • sistema complexo de controle dos HDs.

RAID 01 ou RAID 0 (zero) + 1

https://upload.wikimedia.org/wikipedia/commons/thumb/d/d1/RAID_01.png/200px-RAID_01.png
O RAID 0 + 1 é uma combinação dos níveis 0 (Striping) e 1 (Mirroring), onde os dados são divididos entre os discos para melhorar o rendimento, mas também utilizam outros discos para duplicar as informações. Assim, é possível utilizar o bom rendimento do nível 0 com a redundância do nível 1. No entanto, são necessários pelo menos 4 discos para montar um RAID desse tipo. Tais características fazem do RAID 0 + 1 o mais rápido e seguro, porém o mais caro de ser implantado. No RAID 0+1, se um dos discos vier a falhar, o sistema vira um RAID 0.
Ex: se os dois discos que possuam a sequencia A1, A3, A5 falharem ao mesmo tempo, haverá perda de dados. Se apenas uma das controladoras falhar, o sistema continua funcionando, mas sem outra tolerância a falha e sem o ganho de velocidade.
Vantagens:
  • segurança contra perda de dados;
  • pode falhar 1 dos HD's, ou os dois HD's do mesmo DiskGroup, porém deixando de ser RAID 0 + 1.
Desvantagens:
  • alto custo de expansão de hardware (custo mínimo = 4N HDs);
  • os drives devem ficar em sincronismo de velocidade para obter a máxima performance.

RAID 1+0

https://upload.wikimedia.org/wikipedia/commons/thumb/b/bb/RAID_10.svg/200px-RAID_10.svg.png
O RAID 1+0, ou 10, exige ao menos 4 discos rígidos. Cada par será espelhado, garantindo redundância, e os pares serão distribuídos, melhorando desempenho. Até metade dos discos pode falhar simultaneamente, sem colocar o conjunto a perder, desde que não falhem os dois discos de um espelho qualquer — razão pela qual usam-se discos de lotes diferentes de cada ‘lado’ do espelho. É o nível recomendado para bases de dados, por ser o mais seguro e dos mais velozes, assim como qualquer outro uso onde a necessidade de economia não se sobreponha à segurança e desempenho.
Vantagens:
  • segurança contra perda de dados;
  • pode falhar um ou dois dos HDs ao mesmo tempo, dependendo de qual avaria.
Desvantagens:
  • alto custo de expansão de hardware (custo mínimo = 4N HDs);
  • os drivers devem ficar em sincronismo de velocidade para obter a máxima performance.

RAID 50

https://upload.wikimedia.org/wikipedia/commons/thumb/9/9d/RAID_50.png/500px-RAID_50.png
É um arranjo híbrido que usa as técnicas de RAID com paridade em conjunção com a segmentação de dados. Um arranjo RAID-50 é essencialmente um arranjo com as informações segmentadas através de dois ou mais arranjos... Veja o esquema representativo ao lado:
Vantagens:
  • alta taxa de transferência;
  • ótimo para uso em servidores.
Desvantagens:
  • alto custo de implementação e expansão de memória.

RAID 100

https://upload.wikimedia.org/wikipedia/commons/thumb/c/ce/RAID_100.svg/350px-RAID_100.svg.png

O RAID 100 basicamente é composto do RAID 10+0. Normalmente ele é implementado utilizando uma combinação de software e hardware, ou seja, implementa-se o RAID 0 via software sobre o RAID 10 via Hardware.












































Diferenças entre Cascateamento e Empilhamento

Este artigo esclarece as diferenças funcionais entre EMPILHAMENTO e CASCATEAMENTO de switches Ethernet, e esclarece também os conceitos de gerenciamento e desempenho para cada caso.

Cascateamento, o que é?

Cascateamento é a simples interconexão de dois ou mais switches em série. Para estas conexões entre os switches, são empregadas portas ou interfaces convencionais; as mesmas portas/interfaces que são utilizadas para conectar qualquer dispositivo cliente (ex: computadores, laptops, roteadores, firewalls, pontos de acesso, etc.).

Limitações do Cascateamento

Desempenho da Porta Uplink e Agregação do Tráfego

Uma vez que o cascateamento emprega uma porta Ethernet convencional, seja ela FastEthernet ou GigabitEthernet, a comunicação entre os dois switches interconectados se dá à capacidade de transmissão de dados suportada pela porta empregada. No caso de interconexão de dois switches com porta FastEthernet, a comunicação entre os dois switches ocorrerá a uma taxa de dados na ordem de 100 Mbps. No caso de GigabitEthernet, 1000 Mbps ou 1 Gbps.

O maior problema com relação ao cascateamento está justamente relacionado  ao desempenho das conexões entre os switches envolvidos. Quanto maior for a quantidade de switches em uma “cascata”, maior será o problema de escalabilidade.

Em tese, uma porta Uplink deverá possuir capacidade o suficiente para poder estatísticamente agregar com qualidade as transmissões de todas as demais portas do switch. Ao realizarmos uma interconexão entre dois switches de 48 portas 10/100 (FastEthernet) via porta GigabitEthernet, e dependendo da disposição das conexões, as transmissões destas 48 portas compartilharão a capacidade da porta uplink. A interconexão de múltiplos switches via uma porta GigabitEthernet poderá da mesma forma resultar no compartilhamento de “N portas x 100 Mbps” sobre uma única porta GigabitEthernet, acarretando em problemas de contenção pelo fato da porta GigabitEthernet não ser o suficiente para agregar todo o tráfego das portas de acesso.

Um exemplo de cascateamento:

 

clip_image002

Exemplo de Cascateamento

Convergência e Estabilidade

Outro fator importante é a questão de estabilidade da rede e a convergência do protocolo Spanning Tree em caso de falhas. Redes Comutadas (redes cujas decisões de encaminhamento de frames são baseadas em informações de Camada 2 (camada “Enlace de Dados” do modelo de referência OSI (RM-OSI)), possuem duas necessidades vitais para a continuidade de suas operações:

  •  Topologias redundantes e resilientes
  • Rápida convergência em caso de falhas

Topologias redundantes obviamente implicam no emprego de conexões redundantes entre os switches da rede, e até mesmo switches redundantes para alcançarmos maiores índices de disponibilidade. O problema é que redes comutadas precisam ao mesmo tempo estar totalmente isentas de loops. Por exemplo, a figura abaixo ilustra uma topologia redundante com conexões redundantes entre dois switches. No exemplo demonstrado abaixo, a simples presença do loop na rede resultará em sua imediata paralisação!

clip_image004

Loop em Rede Ethernet

Como, então, promover alta disponibilidade com conexões redundantes em uma rede Ethernet que ao mesmo tempo não pode possuir loops? Para isto existe o protocolo Spanning Tree, ou Spanning Tree Protocol (STP), nas suas variações IEEE 802.1d (STP), IEEE 802.1w (RSTP), e IEEE 802.1S (MSTP).

O objetivo do protocolo Spanning Tree é possibilitar links redundantes em uma rede comutada (com switches), ao mesmo tempo em que eliminando a possibilidade de ocorrência de loops. Na ilustração abaixo, o protocolo Spanning Tree automaticamente deteta a presença do loop, e se encarrega de desabilitar as portas que julgar necessário para assegurar o interrupção da condição de loop entre os dois switches envolvido. Isto é feito automaticamente pelo protocolo Spanning Tree, baseado em uma série de critérios os quais não serão abordados neste documento.

clip_image006

Loop e Spanning Tree

Você deve estar se perguntando: o que isto tem a ver com empilhamento ou cascateamento?

A resposta é muito simples: o protocolo Spanning Tree é complexo, e possui uma série de limitações. O cascateamento excessivo de switches em uma rede Ethernet poderá agravar estas limitações do protocolo Spanning Tree e provocar problemas na rede, em especial loops e o tempo de convergência do protocolo em caso de falhas em um equipamento ou link da rede.

Na verdade, a maior limitação está por conta do diâmetro da rede do Spanning Tree: este protocolo foi projetado para operar com eficiência para redes Ethernet comutadas com no máximo 7 dispositivos em seu diâmetro. Ou seja, de um computador-dispositivo cliente para outro computador, a transmissão não deverá percorrer por mais do que 7 switches ao longo do trajeto. Na verdade, o diâmetro é estabelecido com base em um ponto de referência central, que controla a operação do protocolo Spanning Tree. Este ponto de referência central é um switch Ethernet de melhor prioridade, e desempenha a função conhecida como Root Bridge.

 

clip_image008

Diâmetro STP

Ao interconectar múltiplos switches Ethernet por meios de cascateamento, é possível que o diâmetro da rede seja modificado para algo muito superior a sete (07), o que não é muito compatível com os temporizadores (“timers”) das mensagens do protocolo Spanning Tree (conhecidas por “BPDUs”).

 

clip_image010

Diâmetro excessivo do STP

Gerenciamento

Outro aspecto importante das redes comutadas é o gerenciamento. Sabe-se que para cada dispositivo onde uma verificação precisa ser feita ou alguma configuração a ser realizada, precisamos em primeiro momento estabelecer uma conexão com o sistema operacional do dispositivo para fins de gerenciá-lo e administrar os comandos dos recursos desejados.

A conexão com o sistema operacional do Switch Ethernet poderá ser feita por vários métodos – dependendo do que for suportado pelo dispositivo em questão. Por exemplo, Telnet, SSH, HTTP/HTTPS, e SNMP.

Geralmente switches cascateados são gerenciados individualmente: cada switch que compõe a “cascata” precisa ser acessado isoladamente. Isto acarreta em esforço administrativo e torna o ambiente ainda mais complexo.

Há exceções, porém, como é o caso dos switches da Cisco Systems que suportam o recurso de “Cluster”, onde até 16 switches podem ser agrupados e gerenciados via um único endereço IP (ao invés de fazermos acessos individuais para cada switch), mas, mesmo assim, em termos de estrutura de comutação continuam sendo 16 switches completamente independentes. No entanto, por vias gerais, isto não é tipicamente suportado por todos os fabricantes.

Resumo

O cascateamento é uma simples conexão ou interconexão entre dois ou mais switches através de portas Ethernet convencionais. Possui limitações como a escalabilidade, desempenho de comunicação entre os switches, e a questão do gerenciamento.

Empilhamento, o que é?

Ao contrário do cascateamento, o empilhamento emprega portas dedicadas, exclusivas para o propósito de interconexão entre switches. Esta porta é de alto desempenho – superior às portas FastEthernet e GigabitEthernet – e interconecta o switch fabric diretamente entre os switches da “pilha”. Isto promove um ganho de desempenho muito superior se comparado ao cenário de cascateamento.

Vantagens do Empilhamento

  • Conexão de alto desempenho entre os switches;
  • Porta dedicada e exclusiva para este propósito;
  • Suporta conexões de portas de empilhamento redundantes (Daisy-chain ou ring);
  • Elimina o problema de escalabilidade do diâmetro do protocolo Spanning Tree;
  • Permite gerenciar todos os switches da pilha como se fossem um mesmo sistema (o cascateamento não suporta isto). Emprega-se um único endereço IP para todo o sistema.

No caso da Cisco Systems, as tecnologias Cisco StackWise, Cisco StackWise Plus, e Cisco FlexStack são suportadas pelos modelos 3750, 3750-X, e 2960-S.

As ilustrações abaixo mostram o Cisco StackWise e o Cisco FlexStack (para Catalyst 2960-S).

clip_image012

Cisco StackWise

clip_image014

Cisco FlexStack

clip_image016

Cisco FlexStack

O denominado “empilhamento” de switches possui inúmeras vantagens, se comparada à utilização individual de cada switch em uma rede. Swithes empilháveis, quando fazendo parte de uma pilha ou “stack” de switches, são interconectados diretamente em seus chamados “switching fabric” através de portas dedicadas e específicas para este propósito, o que permite a interconexão direta do plano de controle (“Control Plane”) de cada um dos equipamentos, consolidando-os e os tornando um único switch, completamente gerenciável.

Ou seja, ao invés de possuirmos quatro switches “isolados” em uma rede, mesmo que interconectados através de suas portas, possuímos somente um “único” switch, que é a representação do empilhamento de até 4 unidades (no caso do FlexStack) ou 9 unidades (no caso do StackWise) . O empilhamento oferece as seguintes capacidades e vantagens sobre switches “standalone” ou individuais:

  • Todos os switches de uma pilha são gerenciados de uma vez só.
  • Todos os switches de uma pilha se unificam completamente, e tornam-se um único switch na rede.
  • Elimina o “gargalo” no tráfego de dados entre os switches.
  • Melhora drasticamente as capacidades de gerenciamento e mitigação de falhas na rede local.

clip_image018

Cisco StackWise

Dependendo do modelo empregado, o StackWise poderá ofertar 32 Gbps de desempenho na porta de empilhamento, sendo 16 Gbps Upstream e 16 Gbps Downstream.

A capacidade da porta de empilhamento varia conforme a versão da tecnologia e o modelo de equipamento empregado. Por exemplo, o switch Cisco Catalyst 3750-X, que usa a tecnologia Cisco StackWise Plus, poderá empilhar até 9 switches, tornando-os um sistema único, através de portas dedicadas com capacidade de 64 Gbps. Neste caso, são usados dois cabos de 16 pares, totalizando 64 Gbps.

clip_image020

Cisco StackWise Plus

É no aspeto desempenho e gerenciamento unificado de até 9 switches por pilha que observamos melhor os benefícios do empilhamento. As conexões feitas via portas dedicadas interligam diretamente os “switch fabrics” dos sistemas interconectados, promovendo um cenário de desempenho e robustez absolutamente superior.

A ilustração abaixo mostra uma comunicação unicast entre dois computadores conectados no mesmo switch de uma pilha de switches com StackWise. A comutação é resolvida localmente pela ASIC que controla as portas envolvidas.

clip_image022

Comutação com o Cisco StackWise

Já a ilustração abaixo mostra a comunicação direta via o backplane dos dois switches envolvidos, quando a transmissão precisa fluir de um switch para o outro.

clip_image024

Comutação com o Cisco StackWise

Espero com este artigo ter esclarecido as diferenças funcionais entre EMPILHAMENTO e CASCATEAMENTO, e como o empilhamento se demonstra bastante superior ao simples cenário de cascateamento de switches.

Autor: Leonardo Furtado

Fonte: https://innovacloudorg.wordpress.com/2011/12/30/diferencas-entre-cascateamento-e-empilhamento

 

segunda-feira, 23 de janeiro de 2017

Área de Trabalho Remota não guarda/salva credenciais

Em alguns casos você pode ter a necessidade de salvar as credenciais da sua conexão RDP, em versões anteriores do Windows bastava selecionar a opção “Permitir salvar minhas credencias” mas no Windows Vista e posteriores é necessário uma configuração a mais para que isso seja possível, siga os passos abaixo:

Clique no botão Iniciar image, Digite gpedit.msc e pressione ENTER.‌  Se você for solicitado a informar uma senha de administrador ou sua confirmação, digite a senha ou forneça a confirmação.

Em Política de Computador Local (ou Diretiva de computador Local em pt-br) > Configuração do Computador, clique duas vezes em Modelos Administrativos, em Sistema e, por fim, em Delegação de Credenciais.

image

No painel direito, clique duas vezes em Permitir Delegação de Credenciais Guardadas (Salvas em pt-br) com Autenticação de Servidor Apenas com NTML.

clip_image004

Na caixa de diálogo exibida, clique em Ativado (Habilitado em pt-br) e em Mostrar.

image

Na caixa de diálogo Mostrar Conteúdo, clique em Adicionar, digite o nome do computador remoto (servidor) neste formato: TERMSRV/* e, em seguida, clique em OK.

clip_image006

Agora para ativar desde já a sua nova política antes de reiniciar, clique no botão Iniciar, digite gpupdate.exe e pressione ENTER.‌ 

Pronto suas credenciais guardadas não serão requisitas na sua próxima sessão da Área de Trabalho Remota.

quarta-feira, 18 de janeiro de 2017

Não foi possível carregar o ficheiro ou assemblagem 'System.Web.Extensions

Dica rápida para quem tiver esse erro...
Acontece quando está utilizando uma versão do ASP.NET Ajax diferente do Framework da aplicação

Mensagem de erro do analisador: Não foi possível carregar o ficheiro ou assemblagem 'System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' ou uma das respectivas dependências. O sistema não conseguiu localizar o ficheiro especificado. (G:\DADOS\Sites e Projectos\SPA\web.config line 149)

Informações da versão: Versão do Microsoft .NET Framework:2.0.50727.8745; Versão do ASP.NET:2.0.50727.8745

image

Necessário Instalar o ajax para .net 2 ASPAJAXExtSetup.msi

image

Problema resolvido

sexta-feira, 13 de janeiro de 2017

Desmistificando o comando mount

Em sistemas GNU/Linux, ou Unix-like de uma maneira geral, quando se desejar acessar um sistema de arquivos seja uma partição, um disquete, um CD-ROM ou diferentes dispostivos tais como zip drive, pen-drives dentre outros, é necessário, inicialmente, montar o sistema de arquivos antes de começar a usá-lo.

Atualmente, a maioria dos sistemas provêem mecanismos de automontagem, onde o sistema faz automaticamente a montagem para o usuário. Entretanto, algumas vezes temos que fazer esse processo manualmente, o que é feito utilizando-se o comando mount.

Nesta dica, mostraremos algumas coisas que podem ser realizadas por meio desse comando.

Em sua forma mais básica, basta usar:

# mount opcoes dispositivo ponto_de_montagem

Para verificar quais sistemas de arquivos estão montados, digita-se apenas:

# mount

Remontando um dispositivo como somente-leitura

Esta é muito útil quando se desejar ter um backup de um sistema de arquivos de um servidor em produção. Nesse caso, para a realização do backup, pode-se remontar o sistema de arquivos como somente-leitura, de modo que ninguém possa escrever na partição enquanto o backup estiver acontecendo. Por exemplo, pode-se remontar uma partição já montada /dev/hda5 como somente-leitura executando o seguinte comando:

# mount -o remount,ro /dev/hda5 /mnt/C/

Uma vez terminado o backup, pode-se remontá-la novamente como leitura-e-escrita:

# mount -o remount,rw /dev/hda5 /mnt/C/

Este comando também é muito interessante quando o sistema foi, de alguma maneira, corrompido. Quando se inicia o sistema em modo mono-usuário, o sistema de arquivos é montado em somente-leitura. Numa situação como esta, para proceder a alterações nos arquivos de configuração é necessária remontá-lo como leitura-e-escrita.

Montando uma imagem ISO para visualizar seu conteúdo

Quando se tem baixada uma imagem ISO e se deseja ver o conteúdo do arquivo, há uma maneira fácil de realizar isso, montando-o utilizando o dispositivo loopback. Para tanto, executa-se o seguinte comando:

# mount -t iso9660 -o loop,ro debian-40r3-i386-CD-1.iso /mnt/iso

Movendo um sistema de arquivos já montado para outro local

Tendo já montada uma partição no ponto de montagem / mnt/C/ e desejando-se montá-la em outro local, não é necessária desmontagem do sistema de arquivos e posterior montagem em outro local. Pode-se realizar isso através de um único comando usando a opção --moveconforme o comando abaixo:

# mount --move /mnt/C/ /mnt/novo_local/

Nota: Embora a opção --move sugira uma movimentação de dados, os arquivos não são transferidos, mas são apenas dissociados do ponto de montagem /mnt/C/ e assciados em /mnt/novo_local/.

Montando um sistema de arquivos em dois locais com permissões diferentes

Pode-se utilizar as opções --bind ou --rbind para montar uma partição já montada, que contém um conjunto de diretórios, para outro local com permissões diferentes. Por exemplo, caso se tenha um subdiretório apps em um ponto de montangem /mnt/C/ somente-leitura e pretende-se tornar acessíveis a outros usuários para a escrita dados, pode-se realizar isso usando a opção --bind com o comando:

# mount -o rw --bind /mnt/C/apps /mnt/backup

Assim, apenas o subdiretório apps é acessível como leitura e escrita em /mnt/backup.

Considerações Finais

O comando mount é um dos mais importantes comandos do mundo Linux/Unix. A montagem é uma tarefa corriqueira e sempre necessária nesses sistemas, o que faz com que se recorra diversas vezes ao uso do comando mount. Para desmontagem dos sistemas de arquivos, utiliza-se o comando umount que recebe como parâmetro o ponto de montagem ou o dispositivo.

# umount '(ponto_de_montagem | dispostivo)'

Para maiores informações sobre as outras opções do mount, verificar o manual da ferramenta:.

# man mount