projeto de disco do sql server em um iscsi san
<p>é prática padrão separar os arquivos de log e de dados para separar os discos do sistema operacional (tempdb, backups e arquivos de troca também) essa lógica ainda faz sentido quando suas unidades são todas san e seu luns não são gravados em discos específicos ou conjuntos de raid - eles são apenas parte do número x de unidades no san e o lun é apenas alocação de espaço</p>
<p>logs e unidades de dados têm padrões de acesso a dados diferentes que estão em conflito entre si (pelo menos em teoria) quando compartilham uma unidade.</p><p><strong> gravações de log </strong></p><p>o acesso ao log consiste em um grande número de pequenas gravações sequenciais. de maneira um tanto simplista, os logs do banco de dados são buffers de anel contendo uma lista de instruções para gravar itens de dados em locais específicos no disco. o padrão de acesso consiste em um grande número de pequenas gravações sequenciais cuja conclusão deve ser garantida - portanto, são gravadas no disco.</p><p>o ideal é que os registros estejam em um volume silencioso (ou seja, não compartilhados com mais nada) raid-1 ou raid-10. logicamente, você pode ver o processo como o dbms principal gravando entradas de log e um ou mais threads de leitor de log que consomem os logs e gravam as alterações nos discos de dados (na prática, o processo é otimizado para que as gravações de dados sejam gravadas imediatamente quando possível). se houver outro tráfego nos discos de log, as cabeças serão movidas por esses outros acessos e as gravações de log sequenciais se tornarão gravações de log aleatórias. eles são muito mais lentos, portanto, discos de log ocupados podem criar um ponto de acesso que atua como um gargalo em todo o sistema.</p><p><strong> gravações de dados </strong></p><p>(atualizado) as gravações de log devem ser confirmadas no disco (conhecido como mídia estável) para que uma transação seja válida e qualificada para confirmação. é possível ver isso logicamente como entradas de log sendo gravadas e, em seguida, usadas como instruções para gravar páginas de dados no disco por um processo assíncrono. na prática, as gravações de página de disco são realmente preparadas e armazenadas em buffer no momento em que a entrada de log é feita, mas não precisam ser gravadas imediatamente para que a transação seja confirmada. os buffers de disco são gravados em mídia estável (disco) pelo processo lazy writer (obrigado a paul randal por apontar isso) que <a href="http://technet.microsoft.com/en-us/library/cc966500(loband).aspx">este artigo technet</a> discute um pouco mais detalhadamente.</p><p>este é um padrão de acesso altamente aleatório, portanto, compartilhar os mesmos discos físicos com logs pode criar um gargalo artificial no desempenho do sistema. as entradas de log devem ser gravadas para que a transação seja confirmada, então ter buscas aleatórias retardando esse processo (i/o aleatório é <strong> <em> muito</em> </strong> mais lento do que i/o de log sequencial) irá transformar o log de um dispositivo de acesso sequencial em um dispositivo de acesso aleatório. isso cria um sério gargalo de desempenho em um sistema ocupado e deve ser evitado. o mesmo se aplica ao compartilhar áreas temporárias com volumes de log.</p><p><strong> a função do cache </strong></p><p>os controladores san tendem a ter grandes caches ram caches, que podem absorver o tráfego de acesso aleatório até certo ponto. no entanto, para integridade transacional, é desejável ter gravações em disco de um dbms com garantia de conclusão. um controlador é configurado para usar cache de write-back, os blocos sujos são armazenados em cache e a chamada de e/s é relatada como concluída ao host.</p><p>isso pode amenizar muitos problemas de contenção, pois o cache pode absorver muita e/s que, de outra forma, iria para o disco físico. ele também pode otimizar as leituras e gravações de paridade para raid-5, o que diminui o efeito sobre o desempenho dos volumes raid-5.</p><p>estas são as características que impulsionam a escola de pensamento 'deixe o san lidar com isso', embora esta visão tenha algumas limitações:</p><ul> <li> <p>o cache write-back ainda tem modos de falha que podem perder dados, e o controlador mentiu para o dbms, dizendo que os blocos foram gravados no disco onde de fato não foram. por esse motivo, você pode não querer usar o cache de write-back para um aplicativo transacional, especialmente algo que contenha dados de missão crítica ou financeiros onde problemas de integridade de dados podem ter sérias consequências para os negócios.</p> </li> <li> <p>o sql server (em particular) usa e/s em um modo em que um sinalizador (denominado fua ou acesso de atualização forçada) força gravações físicas no disco antes que a chamada retorne. a microsoft tem um <a href="http://support.microsoft.com/kb/967576">programa de certificação</a> e muitos san fornecedores produzem hardware que respeita essas semânticas (requisitos resumidos <a href="http://download.microsoft.com/download/6/e/8/6e882a06-b71b-4642-9eb4-d1ea0d6223c8/sql%20server%20io%20reliability%20program%20requirements%20document.docx">aqui</a> ). neste caso, nenhuma quantidade de o cache otimizará as gravações em disco, o que significa que o tráfego de log <strong> <em> irá</em> </strong> será interrompido se estiver em um volume compartilhado ocupado.</p> </li> <li> <p>se o aplicativo gerar muito tráfego de disco, seu conjunto de trabalho pode saturar o cache, o que também causará problemas de contenção de gravação.</p> </li> <li> <p>se o san for compartilhado com outros aplicativos (particularmente no mesmo volume de disco), o tráfego de outros aplicativos pode gerar gargalos de log.</p> </li> <li> <p>alguns aplicativos (por exemplo, data warehouses) geram grandes picos de carga transitória que os tornam bastante anti-sociais em sans.</p> </li> </ul><p>mesmo em um grande san volumes de log separados ainda são uma prática recomendada. você pode se safar sem se preocupar com o layout de um aplicativo pouco usado. em aplicativos realmente grandes, você pode até obter o benefício de vários san. a oracle publica uma série de estudos de caso de layout de data warehouse em que algumas das configurações maiores envolvem vários controladores.</p><p><strong> coloque a responsabilidade pelo desempenho onde ela pertence </strong></p><p>em algo com grandes volumes ou onde o desempenho pode ser um problema, faça a san equipe responsável pelo desempenho do aplicativo. se eles vão ignorar suas recomendações de configuração, certifique-se de que o gerenciamento estão cientes disso e de que a responsabilidade pelo desempenho do sistema está no lugar apropriado.em particular, estabeleça diretrizes aceitáveis ​​para estatísticas de desempenho do banco de dados, como esperas de e/s ou esperas de travamento de página ou slas de e/s de aplicativos aceitáveis.</p><p>observe que ter a responsabilidade pelo desempenho dividida entre várias equipes cria um incentivo para apontar o dedo e passar a responsabilidade para a outra equipe. este é um conhecido antipadrão de gerenciamento e uma fórmula para problemas que se arrastam por meses ou anos sem nunca serem resolvidos. idealmente, deve haver um único arquiteto com autoridade para especificar o aplicativo, banco de dados e san alterações de configuração.</p><p>além disso, compare o sistema sob carga. se você puder providenciar, servidores de segunda mão e arrays de conexão direta podem ser comprados por um preço bastante baixo no ebay. se você configurar uma caixa como esta com uma ou duas matrizes de disco, você pode fracionar com a configuração do disco físico e medir o efeito no desempenho.</p><p>como exemplo, fiz uma comparação entre um aplicativo executado em um grande san (um ibm shark) e uma caixa de dois soquetes com uma matriz u320 de conexão direta. neste caso, £ 3.000 o valor do hardware adquirido no ebay superou o valor de £ 1m high-end san por um fator de dois - em um host com cpu e configuração de memória aproximadamente equivalente).</p><p>a partir desse incidente em particular, pode-se argumentar que ter algo assim por aí é uma boa maneira de manter os administradores san honestos).</p>
você já deve ter uma conta da microsoft para isso, certo?  
então, quando você o instalou ele deve ter criado uma pasta chamada skydrive (nome padrão) nos seus documentos. os arquivos que você colocar/excluir nesta pasta e as pastas que você criar/excluir lá dentro serão sincronizados no seu skydrive. <p>se você está procurando um bom artigo, recomendo</p><p> <a href="http://icrontic.com/articles/how\_ssds\_work/2">como e por que os ssds</a> por robert hallock</p><p>vinculei a página 2, que contém a parte que discute o cluster e o tamanho do bloco.</p><blockquote> <p>[...] a solução para o problema é aumentar o tamanho do cluster, para o qual existem várias vantagens:</p> <ul> <li>complexidade reduzida do sistema de arquivos; menos clusters significa menos para organizar.</li> <li>maior velocidade de leitura e gravação à medida que o tamanho do cluster se aproxima da paridade com o tamanho do bloco.</li> <li>diminuição do espaço livre se o sistema for composto principalmente de arquivos grandes.</li> </ul> <p>no entanto, o aumento do tamanho do cluster não é um item mágico para os discos de estado sólido, pois a maioria das pessoas tem uma mistura de informações. os jogos geralmente contêm uma infinidade de arquivos pequenos e os sistemas operacionais são a soma de arquivos pequenos quase como regra; no entanto, filmes, músicas, arquivos e mmos são candidatos perfeitos para tamanhos de cluster ampliados. mais frustrante do que a âncora de pequenos clusters é o processo complicado de obter clusters maiores nos modernos sistemas operacionais windows. tal feito requer o uso premeditado de programas como o acronis disk director, que podem aumentar o tamanho do cluster antes da instalação do windows. também é possível redimensionar os clusters existentes, mas esse procedimento é realizado com um grau assustadoramente variado de sucesso.</p> </blockquote> acredito que ele esteja falando o seguinte, o ssh é um protocolo de rede que serve para “acessar” de forma “segura” uma maquina.

porém existe o ssh- client e ssh-sever, no caso ele disse para instalar o ssh-server, que tem como função “servir” um acesso ssh (e não vem instalado por padrão).

já o s… <p>olá carlos!</p>
<p>é sempre uma boa prática separarmos as classes do nosso sistema pois se fazemos tudo em somente uma acabamos pendendo para o paradigma estrutural e não para o orientado a objetos.</p>
<p>isso também facilita na manutenção do código.</p>
<p>espero que tenha ajudado! :d</p>
<p>bons estudos! ^^</p> é natural que com o tempo o sistema operacional passe a consumir mais recursos. isso acontece principalmente por dois motivos:

arquivos temporários & cache são acumulados com o tempo;

muitos pacotes (e serviços) posteriormente instalados que consomem mais memória e mais processamento, consecutivam… <p>quando você usa <code>dd</code> em <code>/dev/sdb</code> ao invés de <code>/dev/sdb1</code> ou <code>/dev/sdb2</code>, você copia <strong> todas </strong> as <em> partições</em> da referida unidade para <strong> uma </strong> arquivo.</p><p>você deve montar cada partição separadamente.</p><hr><p>para <strong> montar </strong> uma partição de um arquivo <strong> </strong>, você deve primeiro descobrir onde no arquivo que a partição reside.</p><p>usando sua saída de <code>file -s sdb.img</code> encontramos o <code>startsectors</code> para cada partição:</p><blockquote> <p>sdb.img: setor de inicialização x86; <strong> partição 1 </strong>: id = 0x12, início 1, <strong> setor de inicialização 63 </strong>, 10233342 setores; <strong> partição 2 </strong>: id = 0xc, ativo, início 0, <strong> setor de inicialização 10233405 </strong> , 72517410 setores; <strong> partição 3 </strong>: id = 0xc, starthead 0, <strong> startector 82750815 </strong>, 73545570 setores, deslocamento de código 0xc0</p> </blockquote><p><strong> partição </strong> <strong> startsector </strong><br> 1 63<br> 2 10233405<br> 3 82750815</p><p>para montar uma única partição, onde <code>x</code> é o <strong> setor de inicialização </strong> dessa partição, execute:</p><pre><code>mount ~/sdb.img /mnt/sdb -o offset=$((x*512)) </code></pre><p>portanto, para montar a <strong> segunda partição </strong>, você terá que executar:</p><pre><code>mount ~/sdb.img /mnt/sdb2 -o offset=$((10233405*512)) </code></pre><p><strong> nota lateral: </strong> certifique-se de que <code>/mnt/sdb2</code> existe antes de você executar isso.</p><p>diverta-se!</p><hr><p><strong> update: </strong> na resposta, presumi que o tamanho do setor para sua imagem era <code>512</code>, consulte <a href="https://unix.stackexchange.com/questions/2668/finding-the-sector-size-of-a-partition">esta questão</a> sobre como calcular isso.</p> <p>uma pequena nota é que você poderia usar as duas vezes para fazer o comando não mover os dados (assumindo que os dois caminhos estejam no mesmo sistema de arquivos).</p><pre><code>ln /some/path/file /another/path/ &amp;&amp; ln -sf /another/path/file /some/path/ </code></pre><p>mas eu suponho que você deseja mover o conteúdo de/alguns/path/para um outro disco e, em seguida, criar links para os novos arquivos de modo "ninguém".</p><pre><code>for f in `ls /some/path/`; do ln /some/path/$f /another/path/ &amp;&amp; ln -sf /another/path/$f /some/path; done </code></pre><p>envolvendo-o em uma função bash:</p><pre><code>function cpln { for f in `ls $1` do ln $1/$f $2 &amp;&amp; ln -sf $2/$f $1 done } </code></pre> o pessoal já falou várias coisas importantes. só vou acrescentar algumas que aprendi com o pouco que sei de linux.

estabilidade varia de acordo com o usuário. se você fuçar muito e não souber o que está fazendo, pode quebrar até um debian ou slackware da vida. porque? o linux te permite tudo.

s… <p>eu ouvi (desculpe, esqueci onde) digitando o comando <code>sync</code> três vezes (como em: <kbd>s</kbd> <kbd>y</kbd> <kbd>n</kbd> <kbd>c</kbd> <kbd>return</kbd>, aguarde o prompt, repita, repita). eu também li que o origin era um sistema específico em que demoraria alguns segundos para o disco terminar de limpar seus buffers, mesmo depois de ter informado ao sistema operacional que estava tudo bem. digitar o comando mais duas vezes deu ao disco tempo suficiente para se estabelecer. parece que, ao longo dos anos, o propósito foi esquecido e o conselho foi abreviado como <code>sync; sync; sync</code> que não teria surtido o efeito desejado (já que o disco relatou “tudo limpo”, a segunda e a terceira sincronizações seriam concluídas instantaneamente e o prompt voltaria muito cedo).</p><p>nunca ouvi falar de um sistema em que múltiplas operações <code>sync</code> tenham alguma utilidade, e sou altamente cético quanto à existência de alguma. eu considero isso uma lenda urbana. por outro lado, acho altamente confiável que haja sistemas nos quais você deva esperar alguns segundos após a sincronização e antes de desligar.</p><p>googling leva a algumas análises concorrentes independentes, por exemplo, <a href="http://utcc.utoronto.ca/~cks/space/blog/unix/thelegendofsync">a legenda da sincronização</a> . veja também <a href="https://serverfault.com/q/115069/48279">a execução de sync (8) ainda é necessária antes de desligar o linux?</a> .</p> windows 7, windows vista, windows xp, windows server 2003, windows ce, unix, linux, mac os x são exemplos de sistemas operacionais.um sistema operacional é o software principal ou conjunto de programas de um sistema informático que gere os recursos de hardware e fornece serviços para programas aplicativos de software, rodando em modo privilegiado em relação ao resto. vale ressaltar que é um erro comum generalizado chamar o conjunto completo de ferramentas do sistema operacional, ou seja, a inclusão no mesmo termo de programas, como o explorador de arquivos, o navegador da web e todos os tipos de ferramentas que permitem a interação com o sistema operativo.