Eu tenho notificado suporte LSI, duas vezes, mas até agora eles são incapazes de reproduzir o problema. Eu queria postar aqui para obter alguns pensamentos imparciais perito sobre ele e ver se alguém já viu um problema semelhante. Gerenciamos vários servidores que fornecem serviços de Internet com IO de disco muito pesado. Todos executam testes Debian (Sid) - amd64 e usam cartões RAID 3ware da série 85xx - 96xx. Com as atualizações do kernel Debian para 3.9.x-amd64, começamos a obter um segfault com twcli. Testamos tdm2 e também segfaults. Para reproduzir o problema: (Você não precisa de uma placa RAID em seu sistema para fazer isso) 1. Instalação nova do teste Debian (Sid). ISO é cdimage. debian. org/cdimage/weekly-builds/amd64/iso-cd/ 2. Instale twcli e tente executá-lo. Nós corremos twcli como root com strace sob 3.2 e 3.9.6 / 3.9.8-amd64 eo segfault está acontecendo logo após twcli chamadas uname como você pode ver abaixo. Good Run: Bad run: Na boa execução acima, a próxima chamada após uname é abrir / proc / dispositivos que existem e não deve ser um problema. Outra coisa que achamos que é notável e você pode vê-lo na corrida ruim acima, uname no kernel 3.9 / 3.10 adiciona uma data para a seqüência de caracteres. Nós pensamos que estas corridas de strace dois podem indicar twcli está quebrando porque está começando uma resposta inesperada da chamada de uname. Suporte LSI diz: 3dm2 e twcli funcionam bem, mesmo com os últimos kernels Ubuntu 3.10.x e Ubuntu geralmente puxa kernels instáveis do Debian e usá-lo para seus lançamentos. FWIW, não tenho certeza sobre qual suporte LSI está falando. Nós acabamos de testar com uma nova e atualizada instalação do Ubuntu 1304 (Raring Ringtail) e uname - a mostra Linux mac-workstation 3.8.0-26-genéricos 38-Ubuntu SMP Seg Jun 17 21:43:33 UTC 2013 X8664 x8664 x8664 GNU / Linux. Então Ubuntu 1304 está usando o kernel 3,8, não 3.10. E twcli amp tdm2 ambos funcionam bem. Assim, as nossas opções parecem ser: - pino nossa versão do kernel para 3.2 e espero que o problema seja fixado em breve - parar de monitorar nossos RAIDs (não é realmente uma opção) - compilar kernels personalizados para todos os nossos servidores, porque aparentemente O estoque Debian Testing kernel tem este problema - mudar para o Ubuntu para todos os nossos servidores (não viável) - mudar nossos cartões RAID para alguém como Areca (também não é viável para os servidores existentes, mas está sendo considerado para a nossa próxima geração de servidores) A seguinte resposta do suporte LSI / 3ware. Receio que a minha resposta a eles não foi muito agradável, embora acredite que resumiu a situação com precisão. LSI / 3ware disse: Nós somos capazes de reproduzir o problema com o Debian unstable kernel 3.9-1-amd64, mas a engenharia não libera software para kernels não-estáveis ou não-liberados. Se possível, aguarde até que o Debian libere oficialmente o kernel. 3dm2 e twcli devem funcionar com a versão oficial do Ubuntu 13.04 incluindo os kernels atualizados 3.8.x para 3.10. Portanto, o resultado final é: Você não fará uma nova instalação do Debian Testing que reproduzirá o problema. Eu mesmo lhe dei o link para o ISO oficial de teste que tem o problema. Em vez disso, você primeiro compila um kernel personalizado que de alguma forma evita o problema. Em seguida, você saltar sobre testes para instável para reproduzir o problema. Exceto que a engenharia não libera software para kernels não-estáveis ou não-liberados. Assim que mais uma vez você evita ter que fazer exame de toda a ação. Então você tem a coragem de sugerir que não estamos usando o lançamento oficial do Debian (SOMOS) ou que podemos simplesmente desligar nossos serviços rodando em todos os nossos servidores e trocar para uma nova distribuição. A boa notícia para nós é que estamos na comunidade Debian e vamos deixar que todos saibam como isso foi feito pela LSI. Isso vai enviar um sinal forte para o resto da comunidade Linux sobre a viabilidade a longo prazo de seus produtos. Sim, usamos a versão oficial do Debian Testing em produção e alguns acham que não é sábio. Debater que não aborda o problema aqui, porém, que, eventualmente, o kernel em Testing torna o caminho para o estábulo. E o tempo para qualquer fabricante para corrigir o seu software proprietário que é essencial para o uso de seu produto é com a distribuição de teste. ANTES de chegar a Stable. Então, enquanto esperamos que o LSI / 3ware decida carregar o Debian Testing oficial e corrigir o seu software, provavelmente vamos colocar o nosso kernel em 3.2. Podemos também encontrar o tempo para compilar um kernel 3.10 que não produz uma data com uname - r para ver se essa é realmente a causa. Se é que podemos ser capazes de obter que mudou na chamada uname para o kernel. Nós executamos testes Debian (e temos mais de 10 anos agora) na produção porque executamos cargas de IO de disco muito pesadas e precisamos de todas as melhorias assim que pudemos obtê-las, modulo os riscos óbvios de usar Software de ponta. Mas isso não faz sentido. Eventualmente o kernel de teste será o kernel estável. Heck, Ubuntu já está até 3.8. Ndash Andy Dorman Jul 25 13 at 12:54 Enquanto isso, as versões do kernel que possuem saída uname diferente são estáveis, mas o LSI ainda não lançou nenhum software atualizado. A versão a mais atrasada de twcli foi liberada em 2012. Desde que LSI igualmente doesn39t atualiza a linha de produto 3Ware eu penso que nós podemos seguramente supor lá não será nenhuma atualização. Já estamos fazendo a mudança para cartões LSI. Ndash Rudy Broersma Nov 26 15 at 12:59 O problema não é a data, é que twcli está procurando XYZ (-R-arco) no lançamento e sua única obtenção XY (-R-arco) - 3.2.0-4- Amd64 vs 3.10-2-amd64. Quando o lançamento é definido como 3.10.0-2-amd64 ele funciona bem. Eles podem estar fazendo um sscanf () com formatos limitados e pouca ou nenhuma verificação de erros. Se o binário era dinâmico você poderia ver sobre um uname () substituição com LDPRELOAD mas seu estático. Não há código-fonte para que nossas opções sejam limitadas: LSI / 3ware correções twcli, esperamos que remover todos os uname () nonsense Obter Debian para usar XYZ-R-arch na liberação Alguém bom com montagem vem com um patch binário ou algo semelhante Run a Kernel personalizado Executar um kernel mais antigo Ditch 3ware Eu gosto do meu 9650, mas isso é uma porcaria. Respondeu Aug 31 13 at 1:53 Onde é que o seu módulo utsname vêm de ndash derobert Oct 4 13 at 19:33 Eu fiz isso. É o meu primeiro módulo do kernel. De certeza que alguém que sabe o que eles estão fazendo teria muitas queixas sobre o que eu fiz. Obrigado, você me salvou ter que descobrir como escrever módulos do kernel (e lembre-se de C suficiente) para escrever o meu próprio. Sugiro que você pode querer colocar isso em algum lugar mais permanente, para ajudar outros sofredores 3ware. Ndash derobert Oct 10 13 at 5:35 Se eu estivesse mais confiante com o código que eu poderia colocá-lo em algum lugar melhor, mas mesmo além da qualidade do código a coisa toda é muito esboçado se você me perguntar. Se você planeja usar isso para executar o twcli binário, então eu iria minimizar o impacto, fazendo um wrapper pequeno shell script que define um valor de funcionamento, executa o binário, e repõe-lo depois. Só não sei o que aconteceria com o carregamento do módulo do kernel ou a reconstrução do initrd se você correr por longos períodos de tempo com uma versão diferente. Pastebin / YLMet1y0 ndash logan Oct 12 13 at 4:10 Você não deve executar testes Debian a menos que você queira testá-lo. Especialmente não em um servidor. Eu diria que tente reproduzi-lo no Debian estável. Além disso, as placas LSI 3ware vêm com uma excelente interface de administração baseada na web que lhe permite configurá-lo para enviar alertas. Nesse caso, você não precisa usar twcli em um script para enviar e-mails de tais alertas e, assim, evita o problema que você está tendo. Considerações sobre como trabalhar com controladores RAID 3Ware Os controladores RAID 3Ware são confiáveis, controladores confiáveis, capazes de throughput decente, que são suportados por muitas versões do Linixi . Para unidades IDE, os controladores da série 7000 estão freqüentemente disponíveis no mercado de desconto / leilão por muito pouco dinheiro, especialmente o 7006-2. Para unidades SATA, os controladores da série 9500 também estão disponíveis para preços de desconto, especialmente o 9500S-LP. Estas notas são voltadas para o trabalho com esses cartões, embora eles sejam extensíveis a outros modelos dos controladores 3Ware. As etapas para configurar fisicamente uma matriz RAID usando os controladores 3Ware são cobertas bastante bem em suas instruções. Estas são notas adicionais que abordam tópicos que não são cobertos pela documentação tradicional. Instalando o 3DM2 A maioria das versões do Linux vem com drivers de dispositivo embutidos, para os cartões 3Ware. Tudo o que resta a ser instalado é o programa de gerenciamento 3Ware que pode ser instalado para monitorar e gerenciar as matrizes RAID em um sistema usando comandos ou uma interface baseada na Web. Para instalar este pacote, obtenha a versão mais recente do mesmo no site da 3Ware (você pode usar o 3DM2 fornecido para os controladores da série 9000, com os controladores da série 7000): Para obter o software adequado, pode-se escolher o 9690SA (ou 9690SA -4I) série de controladores e, em seguida, o pacote combinado 3DM2 e CLI. No passado, a versão que baixamos é a versão Linux de 32 bits: Para esta versão, descompacte o arquivo como Joe Usuário: tar - xvzf 3DM2CLI-Linuxx86-9.5.0.1.tgz Execute o binário resultante como root: su setupLinuxx86.bin - console Você vai adorar responder às perguntas usando apenas as teclas numéricas. Nós escolhemos / usr / local / 3Ware como o diretório de instalação (principalmente porque não podemos lembrar quem é AMCC, além do cinema local). Algumas versões do instalador sempre querem usar um TLD de AMCC para que eles realmente coloquem as coisas em / usr / local / 3Ware / AMCC, o que não faz nenhuma negligência para nós. Mas, se você quer um nível de diretório menor, você pode escolher / usr / local / AMCC. Nós geralmente queremos usar o root como o destinatário das mensagens de e-mail locais, mas o assistente não vai permitir (apenas endereços do formulário youbug. me). Mas, depois de ter feito a configuração do seu sistema, você pode ir para /etc/3dm2/3dm2.conf e simplesmente colocar na raiz. Atualmente, estamos usando a versão Linux 10.2.1: Para esta versão, e apesar de ser destinado para Linux, os caras inteligentes da LSI Corp (a nova casa da 3Ware) decidiram empacotar o 3DM2 CLI como um arquivo zip. Então, você vai precisar de algo (como Windoze Zip) que pode descompactar o arquivo zip. Nós descompactá-lo em uma caixa Windoze, copiá-lo para uma caixa de Linux e, em seguida, fazer um novo arquivo tar, que podemos então usar como normal. Isso é completamente até você. Você poderia simplesmente descompactar o pacote e copiar os arquivos para o seu sistema Linux. Depois de ter o pacote descompactado, execute o script de shell resultante como root: Responda Y ao pedido de licença de concordância e, em seguida, escolha 0 para instalar o CLI ea interface da Web. O script de instalação faz tudo o mais para você. Não há outras perguntas para responder. Se você deseja ajustar 3DM2, especialmente se você quiser usar uma porta da Web diferente de 888, você pode editar diretamente /etc/3dm2/3dm2.conf. Nós preferimos usar a porta 7080. Depois de editar /etc/3dm2/3dm2.conf, o 3DM2 precisa ser reciclado (veja abaixo). Uma vez que a instalação é feita, 3DM2 deve começar automagically. Além disso, ele será iniciado sempre que o sistema for inicializado. Se você quiser iniciar / parar manualmente, está em /etc/init. d, chamado tdm2 (isso é intuitivo): /etc/rc. d/init. d/tdm2 start /etc/rc. d/init. d/ Tdm2 stop Para exibir os controladores staus da Web, você precisa usar HTTPS, não HTTP. A primeira vez, você precisa aceitar o certificado falso do sistema executando 3DM2 (não preste atenção a todos os whining que FireFox ou IE faz). Se você escolheu a porta 7080 para executá-la, tente isso: Depois de uma nova instalação, as senhas secretas são 3ware. Você pode mudá-los, se quiser. Se você receber um erro de redefinição de conexão ao conectar-se à página da Web 3DM2, verifique KB16625 para obter uma correção: Monitorando Discos RAID com SMART Se os discos usados em uma matriz RAID conectada a um controlador 3Ware estiverem habilitados para SMART, Eles podem ser monitorados pelo SMART daemon smartd. Para monitorar os discos na matriz, instale o smartd da maneira usual (selecionando-a do gerenciador de pacotes de sistemas operacionais ou instalando-a diretamente da fonte). Uma vez feito isso, corte o arquivo de configuração de exemplo (/etc/smartd. conf) que vem com smartd como mostrado aqui, neste caso para monitorar discos SATA controlados por 3Ware: Se sua matriz usa discos IDE mais antigos, corte a configuração de exemplo Arquivo (/etc/smartd. conf) que vem com smartd como mostrado aqui: Você pode ter notado, a partir da inspeção dos dois trechos de arquivo de configuração mostrados acima, que o nome do dispositivo 3Ware depende de qual driver de dispositivo é empregado. O driver 3w-xxxx mais antigo nomeia o dispositivo de matriz / dev / twen (onde n é o número do dispositivo). O novo driver 3w-9xxx nomeia o dispositivo de matriz / dev / twan (onde n é, mais uma vez, o número do dispositivo). Em ambos os casos, toda a matriz aparece como um único dispositivo. Também pode ser nomeado / dev / sda para parecer transparente para software e pacotes existentes, mas o SMART sempre usa os dois ou três nomes de dispositivo. Para monitorar e testar dispositivos individuais na matriz, o - d 3ware. É usado para dizer ao SMART que a matriz é uma matriz 3Ware e para selecionar qual dispositivo é de interesse. Os dispositivos na matriz são numerados a partir de zero, até n-1 onde n é o número de discos físicos na matriz. Esta convenção de nomenclatura também pode ser usada com o comando smartctl para listar ou definir as informações SMART associadas a um disco específico. Por exemplo, para listar todas as informações SMART para a primeira unidade IDE em uma matriz RAID, use este comando: su / usr / sbin / smartctl - a - d 3ware, 0 / dev / twe0 Para listar todas as informações SMART para a segunda unidade SATA Em uma matriz RAID diferente, use este comando: su / usr / sbin / smartctl - a - d 3ware, 1 / dev / twa0 Recuperação de uma falha de disco Quando um disco em uma matriz de 2 discos é danificado, as seguintes etapas devem permitir Você pode recuperar a matriz (essas etapas também funcionam para criar uma nova matriz de uma unidade clonada): Mova o bom disco para o Slot 0. Você pode deixá-lo no Slot 1, se ele já estava lá, mas por algum motivo, alguns Das placas do controlador parecem recuperar melhor se o bom disco estiver no Slot 0. Insira um novo disco em branco no Slot 1. Se o disco não estiver em branco e tiver sido usado em um array 3Ware antes, consulte as etapas abaixo sobre como excluir a matriz E começar de novo. Alternativamente, você pode colocar o disco em uma caixa autônoma do Linux ou Unix e usar o seguinte comando para zerar as primeiras faixas para fazer o controlador RAID pensar que está em branco (supondo que o disco está no slot hdc): dd if / dev / Zero de / dev / hdc bs512 count1024 Inicialize a máquina com as unidades originais e novas nele. Pressione Alt-3 para abrir o utilitário 3Ware BIOS. Selecione o novo disco em branco e a matriz RAID existente (ou seja, o disco ou os discos originais). Selecione Reconstruir. Você pode tentar aceitar a configuração padrão para Halt em erros de origem, a primeira vez. Pressione F8 para salvar as alterações e continuar com a inicialização (responda às perguntas óbvias, primeiro). Uma vez que a máquina é inicializada, a matriz deve ser reconstruída após cerca de 10 minutos decorridos. Pode levar várias horas. Seu único indício absoluto de que é feito é quando a luz de atividade na placa do controlador (um minúsculo chip LED ao lado dos conectores IDE no 7006-2, ou ao lado do conector J3 no 9500S-LP) pára de piscar. No entanto, enquanto a matriz está sendo reconstruída, as luzes de atividade em qualquer compartimentos de unidade removível, ou qualquer luzes conectadas aos pinos de cabeçalho de luz de status será em quase solidamente e, se 3DM é instalado, você verá um indicador que a matriz está sendo Reconstruído, bem como um indicador de progresso percentual na página da Web 3DM. Ou, você poderia apenas executar a reconstrução durante a noite, enquanto você está cochilando. Reinicie a máquina. Pressione Alt-3 para abrir o utilitário 3Ware BIOS. Observe o estado da matriz. Se a unidade recém-adicionada for marcada como não utilizada ea matriz marcada degradada, a matriz não será reconstruída corretamente. No caso de uma matriz não ter sido reconstruída corretamente ou se você estiver reutilizando um disco que estava anteriormente em uma matriz, siga estas etapas para excluir as informações da matriz falha / anterior do disco e começar de novo (ou veja o procedimento usando Dd, acima). Desligue a máquina. Remova o disco original, bom. Inicialize a máquina com apenas o disco a ser excluído na matriz. Pressione Alt-3 para abrir o utilitário 3Ware BIOS. Selecione a matriz (que agora será marcada incompleta) e selecione Excluir. Encerre o sistema, reinsira o disco original, bom e inicialize o backup da máquina. Se uma matriz falhar a reconstruir corretamente, você pode tentar os seguintes passos para obtê-lo para fazer isso, apesar do erro de E / S ocasionais. Verifique se todos os discos que estarão na matriz serão instalados na máquina. O original, o bom disco deve estar no Slot 0, se possível. Inicialize a máquina. Pressione Alt-3 para abrir o utilitário 3Ware BIOS. Selecione o novo, o disco eo array RAID existente. Selecione Reconstruir. Desta vez, selecione a opção Ignorar erros de origem. Pressione F8 para salvar as alterações e continuar com a inicialização (responda às perguntas óbvias, primeiro). Uma vez que a máquina arranca, a matriz deve reconstruir-se depois de cerca de 10 minutos decorridos (veja acima para saber como o seu feito). Reinicie a máquina. Pressione Alt-3 para abrir o utilitário 3Ware BIOS. Mais uma vez, observe o estado da matriz. Se a unidade adicionada recentemente é agora parte da matriz, você está no negócio. Se não for ou a matriz ainda estiver marcada degradada, a matriz não será reconstruída corretamente. Você pode querer executar diagnósticos nos discos que você está usando e / ou substituir a placa controladora. Clonagem de um disco Se você gostaria de clonar um disco para usar em outro sistema ou com outra placa controladora, este é o método preferido para fazê-lo (embora você estará enfrentando um curto período de tempo, enquanto a matriz está sendo reconstruída, quando você Apenas uma cópia do disco). Você pode prosseguir conforme descrito acima em Recuperando de uma falha de disco para fazer uma duplicata de uma boa unidade de uma matriz de trabalho. Comece com a unidade original no Slot 0 ea unidade de clonagem no Slot 1. Siga as etapas para recuperar de uma matriz degradada. Uma vez que a matriz com a nova unidade foi reconstruída, você pode desligar a máquina e remover a nova unidade. Você deve ser capaz de mover a nova unidade para outra placa controladora e prossiga para construir uma matriz de trabalho a partir dele com uma segunda unidade nova. Enquanto isso, quando você inserir o original slot 1 unidade de volta para o sistema, o controlador RAID irá degradar a matriz e você terá que reconstruí-lo novamente. Você deve primeiro excluir as informações da matriz anterior da unidade original Slot 1, conforme descrito acima, removendo a unidade Slot 0 e, em seguida, excluindo a matriz ou usando dd para gravar zeros sobre as primeiras faixas. Copiando um disco Se você estiver tendo problemas com uma matriz e quiser uma cópia de reposição da unidade boa (por exemplo, antes de fazer qualquer coisa para a matriz com falha) sem recorrer ao método de clonagem assistida pelo controlador descrito acima ou você só quer fazer uma cópia De uma boa unidade sem expor-se durante esse curto período quando há apenas uma boa unidade em sua matriz, você pode fazer uma cópia de uma unidade como descrito abaixo. Uma vez que você fez isso, no caso de uma unidade com falha você pode fazer o seu explodir na unidade copiada e salvar a unidade de idade, apenas no caso de seus esforços de recuperação não ter sucesso e você precisa voltar. Para cópias apenas em linha reta, você pode colocar a unidade original de volta na matriz e ele deve iniciar sem a necessidade de reconstruir. Coloque o disco a ser copiado (após uma falha, presumivelmente esta é a unidade que ainda é boa) no slot secundário / mestre de uma máquina Linux que tem dd, ou melhor ainda sgdd, instalado nele. Coloque o disco que está copiando para o slot Primário / Escravo da mesma máquina. Inicialize a máquina e copie todo o disco original para o novo disco. Este script (chamado copydisks) pode ser usado para garantir que não haja erros: Para fazer a cópia, execute: Note que a imagem de disco pode ser muito grande para sgdd ou dd para copiar tudo em uma operação, caso em que a cópia acabará curta Todo o disco. Se isso acontecer, você pode reiniciar a cópia simplesmente executando sgdd ou dd, começando a partir de pouco antes de onde a cópia desistiu. Por exemplo: sgdd skip1234567 seek1234567 bs. Depois de ter copiado o disco inteiro, você pode mantê-lo para o back-em-up botos. Se você quiser colocar o disco na matriz RAID existente, use-o para criar uma matriz totalmente nova para uma máquina duplicada, ou para algum outro procedimento que exija que ele seja conectado a um controlador 3Ware, primeiro você precisará alterar o disco serial Número na primeira faixa da unidade. Quando o controlador 3Ware constrói a matriz, ele coloca os números de série das unidades na matriz em um bloco de controle que ele grava na primeira faixa de cada uma das unidades de matrizes. O ato de copiar a unidade faz com que os números de série não sejam correspondidos (ou seja, a cópia contém o número de série dos drives originais, mas a unidade na qual ele é copiado tem um novo número de série diferente). Para tornar a cópia aceitável para um controlador 3Ware, você precisa usar o programa de edição de disco favorito para localizar o número de série dos discos originais e atualizá-lo para o novo número de série dos discos. Nesse ponto, você deve ser capaz de prosseguir, usando o novo disco, como descrito acima em Recuperando a partir de uma falha de disco. Expandir um tamanho de matrizes Expandir um tamanho de matrizes é complicado principalmente pelo fato de que a única coisa que irá tocar as unidades de matrizes é o controlador 3Ware. Você pode tentar colocar dois controladores em um sistema, pois não há nenhuma razão física que o impeça. No entanto, o crap software do sistema operacional (especialmente Linux) lá fora, pode não ser muito interessado em inicializar esta configuração. É melhor usar uma unidade IDE separada como um buffer temporário de cópia, conforme descrito nas etapas a seguir (aliás, essas etapas consideram que você está expandindo uma unidade Linux, não o Windows): Obtenha um par de discos novos e uma placa controladora e coloque-os Uma máquina separada (que ou desligar e usar a máquina com a matriz existente). Você precisará de uma máquina com um slot PCI disponível, bem como uma conexão IDE separada, além de uma unidade de CD ou DVD. Remova qualquer outra coisa na forma de discos e / ou hardware exótico, uma vez que você só deseja que os novos discos ea placa do controlador único instalado na máquina neste momento. Você precisará de uma cópia do CD de instalação para o sistema que já está no disco de matriz que será expandido. Inicialize a máquina. Pressione Alt-3 para abrir o utilitário 3Ware BIOS. Selecione os dois novos discos. Escolha Compilar para criar a matriz. Depois de ter feito isso, pressione F8 para salvar a configuração e continuar com a inicialização a partir do CD de instalação do SO. Instale o SO idêntico ao da antiga (por exemplo, Linux). Certifique-se de particionar o disco exatamente o mesmo que a matriz original (exceto que você pode crescer a última partição para preencher o restante das unidades de matriz). Se você alterar os tamanhos de qualquer partição, exceto o último, você estará em apuros. Aqui está um layout típico que é freqüentemente usado: Quando a instalação é feita, desligue a máquina. Conecte um terceiro disco à conexão IDE. Isso ajuda se todos os discos são idênticos em tamanho (especialmente no caso da matriz RAID). Inicialize o sistema com o disco de instalação do SO na unidade de CD / DVD ou um particionador de disco (como o Acronis Partition Expert). Se você usar o disco de instalação do SO, prossiga para instalar outra cópia do sistema operacional no terceiro disco IDE até chegar à parte onde os discos são particionados. Se você usar o particionador, criar partições correspondentes no terceiro, disco IDE para aqueles na matriz que está sendo expandida. Remova a terceira unidade IDE da máquina e ligue-a ao sistema original (Primary / Master). Ou, se você estiver usando apenas um sistema, remova a nova matriz e ganhe backup da matriz original. Insira um CD do Linux autônomo (por exemplo, Knoppix) na unidade de CD / DVD das máquinas. Inicialize a partir deste CD. Para o Knoppix, o comando de inicialização é: failsafe 2 Após o boot ser concluído, copie todas as partições, uma por uma, da matriz original para a unidade IDE: dd bs-65536 se / dev / sda1 de / dev / hda1 dd Bs-65536 se / dev / sda3 de / dev / hda3 Note que estavam assumindo que era um sistema Linux com três partições, uma das quais (/ dev / hda2) era a partição swap. Feche o sistema. Troque a matriz antiga com a nova matriz ou transporte a unidade IDE novamente para o sistema que possui a nova matriz. Inicialize novamente a partir do CD do Linux autônomo (por exemplo, Knoppix), na unidade de CD / DVD das máquinas. Para o Knoppix, o comando de inicialização é: failsafe 2 Você pode copiar todas as partições (excluindo o swap eo último) com DD, já que elas são idênticas em tamanho. Por exemplo: dd bs65536 se / dev / hda1 de / dev / sda1 A última partição pode ser copiada usando o sistema de arquivos máquinas e os comandos de cópia regular. Isso preservará o tamanho do sistema de arquivos de destino. Ou você pode usar dd e reconstruir o sistema de arquivos mais tarde. As etapas a seguir descrevem como fazer a cópia usando o sistema de arquivos de máquinas: dd bs65536 se / dev / hda1 de / dev / sda1 mkdir / mnt / em mkdir / mnt / out mount / dev / sda3 / mnt / out rm - rf / Mnt / out / mount / dev / hda3 / mnt / em cp - rfp / mnt / in / / mnt / out Depois que a cópia for concluída, remova o CD de inicialização. Feche o sistema e desconecte a unidade IDE. Insira o CD de instalação do SO, mais uma vez, na unidade de CD / DVD. Inicialize o disco de instalação do SO e siga as etapas para o resgate. Permitir que ele encontre e monte o sistema operacional existente. Verifique a integridade dos sistemas de arquivos na nova matriz: fsck. ext3 / dev / sda1 fsck. ext3 / dev / sda3 Ignore quaisquer mensagens sobre como é ruim recuperar um sistema de arquivos montado. Altere para o sistema de arquivos recém-montado: chroot / mnt / sysimage Repare o carregador de inicialização (supondo que você esteja usando o grub): / sbin / grub find / grub / stage1 ou, se isso não encontrar / boot / grub / stage1 root (hd0,0 ) (Use o endereço correto do comando find) setup (hd0) quit Você agora deve ser capaz de inicializar a partir da matriz RAID recentemente expandida. Migrando uma unidade SATA / IDE para uma matriz Se você deseja migrar a unidade SATA ou IDE existente ou unidades de um sistema Linux para uma matriz RAID, você pode usar qualquer método que você escolher para copiar a (s) unidade (s) para a matriz. A matriz deve ser configurada, conectada a um controlador e instalada em um sistema. Pode ser o sistema existente ou pode ser um novo sistema atualizado que eventualmente irá executar a matriz. Uma maneira de fazer a cópia é instalar o disco original eo controlador / array no mesmo sistema. A matriz é construída e, em seguida, é inicializado um sistema operacional autônomo (como o Knoppix), a partir de um CD ou dispositivo USB, que pode ser usado para particionar a matriz, copiar dados de partições da unidade original para a matriz, expandir partições de matrizes, etc. . Outra maneira de fazer a cópia é instalar o controlador / matriz em um sistema separado que tem uma conexão de rede, construir a matriz e, em seguida, inicializar um sistema operacional autônomo (como Knoppix), de um CD ou USB stick, que pode uma vez Novamente para particionar a matriz e executar lftp. Uma vez que o array é particionado, o lftp é usado para espelhar o sistema de arquivos pela rede, um diretório de nível superior de cada vez. Por exemplo: su mount / dev / sda3 / media / sda3 cd / media / sda3 lftp 192.168.1.1 - u root senha secreta espelho - a / bin bin espelho - a / etc etc espelho - a / home home. . . Você provavelmente só precisará criar um diretório de nível superior para / boot, se o seu sistema montar uma partição separada (por exemplo, / dev / sda1) em / boot. Nesse caso, você precisará copiar a partição / boot separadamente, mas, caso contrário, você deve copiar o subdiretório / boot também. Você deve definitivamente não copiar os diretórios / dev e / proc, em vez disso apenas criar seus detentores de lugar (desde que o sistema operacional constrói seu conteúdo na mosca): mkdir dev mkdir proc Temos usado com êxito esta técnica Para migrar uma versão em execução do Linux para uma nova matriz RAID em um sistema separado. A única dificuldade ocorreu quando o diretório / var foi espelhado. Alguns dos arquivos de bloqueio em / var / lock e / var / run não puderam ser copiados por FTP. A solução era espelhar o diretório no sistema original, em um diretório home de usuários, e copiar o espelho. No sistema original: cp --preserve - R / var / home / jblow / varmirror No sistema com a matriz, em lftp: mirror - a / home / jblow / varmirror var Note que, para que o FTP possa copiar todos Dos ficheiros de sistema, poderá ter de permitir à raiz iniciar sessão no FTP no sistema original. Se o sistema original estiver executando VSFTPD, você precisará cortar os arquivos: / etc / vsftpd / ftpusers e / etc / vsftpd / userlist e comentar a linha com a raiz nela, em cada um dos arquivos. Em seguida, reinicie o VSFTPD: Se você precisar configurar uma partição de swap, faça isso da seguinte forma: su mkswap / dev / sda2 Uma vez que todas as partições foram criadas, você deve instalar o gerenciador de inicialização (o Linux usa o GRUB) no diretório disco. Como acima, você pode evitar o problema de configurar o setor de inicialização com o gerenciador de inicialização apenas copiando as primeiras faixas do disco de origem diretamente com dd. No entanto, uma vez que weve já configurado a tabela de partição, devemos fazer a cópia com muito cuidado para evitar apagá-lo. Primeiro, comece copiando o gerenciador de inicialização do sistema original para um arquivo: dd bs512 count63 se / dev / hda de / home / joeblow / BootLoader. dump Agora, no sistema com a matriz RAID: su cd / ramdisk lftp 192.168.1.1 - u root senha secreta cd / home / joeblow get BootLoader. dump sair dd bs446 count1 ifBootLoader. dump de / dev / sda dd bs2 skip255 seek255 conta1 ifBootLoader. dump de / dev / sda dd bs512 skip1 seek1 count62 se / BootLoader. dump de / Dev / sda Isso copia os primeiros 446 bytes do primeiro setor (também conhecido como MBR), que contém o código do carregador de inicialização. Ele salta sobre os próximos 64 bytes, que contêm a tabela de partição. Em seguida, ele copia o cookie mágico de dois bytes que o define como MBR. Finalmente, ele copia os próximos 62 setores (a. k.a. o DOS Compat Space), que contêm o código GRUB 1.5. Uma vez feito isso, você deve ter um disco inicializável que esteja particionado da maneira que você quiser. Talvez você queira testar se o sistema pode inicializar o disco (é verdade, talvez não fique longe, mas pelo menos veja o GRUB Stage 1.5 em execução) antes de prosseguir. Você deve agora ajustar o arquivo grub. conf (ou menu. lst) no diretório / boot / grub, o arquivo / etc / fstab, quaisquer arquivos de rede que serão afetados por uma mudança na NIC (se você estiver usando Um novo sistema) e quaisquer outros arquivos que possam ser necessários para a execução do sytem. E, se seu sistema tiver um pânico do kernel, que diz que a raiz e outros sistemas de arquivos não podem ser encontrados, quando o sistema é inicializado, é provavelmente devido à imagem initrd que não contém os drivers de dispositivo 3Ware. Esses drivers estão incluídos entre os módulos do kernel por padrão, para todas as versões posteriores do kernel do Linux, mas a imagem initrd do sistema original provavelmente não os incluiu. Isso pode ser corrigido voltando ao sistema original e construindo uma nova imagem initrd (isso deve ser feito em um sistema em execução) que inclui os drivers apropriados. Para os controladores RAID da série 7000, você deve fazer: / sbin / mkinitrd - v - f --with3w-xxxx --withscsimod --withsdmod / boot / initrd-uname - r. img. new uname - r Para o 9500- Série, você deve fazer: / sbin / mkinitrd - v - f --with3w-9xxx --withscsimod --withsdmod / boot / initrd-uname - r. img. new uname - r A nova imagem initrd deve ser FTPed Para o novo sistema com a matriz RAID e renomeado para substituir a imagem initrd existente. Your system should then boot with no problems. Getting Your Data Off The Array As was mentioned above, the only thing that will touch the disks in the array is the RAID controller. This can present a problem, should you ever wish to have a non-RAID-managed copy of the data (e. g. youd like a regular, bootable disk that doesnt need the RAID controller to run). The procedure for doing so is basically outlined above in Expanding An Arrays Size. Essentially, you cofigure a system with a RAID controller, with the array connected, plus a non-RAID (i. e. IDE or SATA) drive. You boot up the system with your favorite copy software and proceed to create new partitions on the non-RAID drive. Then, you do a partition-by-partition copy, instead of copying the drive directly on a track-by-track basis. Once the copying is done, you may need to reinstall the boot loader, if the disk is supposed to be bootable. All the steps are described above. Querying RAID Status This article should supply an overview of how the RAID status can be queried for the various RAID controllers that are used by Thomas-Krenn. AG for your server products. This information is exceptionally important for the undisrupted operation of a server system and should be requested periodically. Furthermore, the following commands are very appropriate for deployment in scripts that will be periodically executed to notify server administrators by email, for example, when there are problems with the status of the RAID arrays. 3ware For monitoring the RAID status of a 3ware RAID controller, the best solution is to use the 3ware command line interface (twcli). Examples of Commands Requesting Information Listing all obstructed 3ware RAID controllers: Listing all information regarding Controller c0: Listing all information regarding Unit u0 on Controller c0: This last item is probably most suitable for monitoring the RAID status of individual units. Command Help You can find help regarding which commands are available from the command line interface through the command help Downloading twcli If the CLI has not been installed on the system, it can be downloaded from the Thomas-Krenn. AG Download Site. twcli Documentation The documentation for the CLI can also be found at the Thomas-Krenn. AG Download Site. Further Information Information regarding rebuilding units connected to 3ware RAID controllers can be found in the following article: Rebuilding with 3ware Controllers under Linux Information about how the consistency of RAID arrays controlled by 3ware controllers can be tested can be found in the section referred to in the following article: Checking the Consistency of RAID Arrays3ware RAID Controllers Information regarding the analysis of units connected to 3ware RAID controllers can be found in the following article: Analyzing 3ware RAID Controllers Additional useful articles can be found in the following categories: Adaptec For monitoring the RAID status of an Adaptec RAID controller, the best solution is to use the Adaptec command line interface (ARCCONF). Examples of Commands Requesting Information Listing all information regarding the controller with the ID 1 Listing all information regarding the settings of the controller with the ID 1 Listing all information regarding the logical drives connected to the controller with the ID 1 Listing all information regarding the physical devices connected to the controller with the ID 1 Command Help You can find help regarding which commands are available from the command line utility by entering the ARCCONF command (without additional commands or parameters). You can get help regarding the individual commands by entering the corresponding command and pressing the Enter key. Downloading ARCCONF The command line utility is a component of the ASM (Adaptec Storage Manager) package. If the command line utility has not been installed on the system, it can be downloaded from the Thomas-Krenn. AG Download Site. ARCCONF Documentation The documentation for the command line utility can be found on the Adaptec home page: Further Information The following wiki articles will supply additional information regarding the operation of Adaptec RAID controllers: Adaptec RAID Maintenance Best Practices Analyzing Adaptec RAID Controllers Correcting Hard Disk Failures with Adaptec RAID Controllers using ARCCONF Checking the Consistency of RAID ArraysAdaptec RAID Controllers Areca For monitoring the RAID status of an Areca RAID Controller, the best solution is to use the Areca command line interface cli32. or cli64 for 64-bit systems. Examples of Commands Requesting Information Listing all information regarding the RAID set Listing all information regarding the volume set Listing detailed information regarding the first volume set Listing all information regarding the physical disks Listing detailed information regarding the first physical disk Command Help You can get help regarding the individual commands by adding the - h or - help flags to the respective command. The following command will supply a list of all possible commands: Downloading cli32 or cli64 If the CLI has not yet been installed on the system, it can be downloaded from the Areca Support Site. CLI Documentation The documentation for the command line interface can also be found on the home page of the Areca support site: Further Information Information about how the consistency of RAID arrays controlled by Areca controllers can be tested can be found in the section referred to in the following article: Checking the Consistency of RAID ArraysAreca RAID Controllers Information regarding the analysis of units connected to Areca RAID controllers can be found in the following article: Analyzing Areca RAID Controllers LSI To check LSI based RAIDs you are advised to use LSI StorCLI. Tech039s you need. 3ware CLI is a command line interface for managing 3ware RAID Controllers. We can use the CLI to view unit status and version information and perform maintenance functions such as adding or removing drives. 3ware CLI also includes advanced features for creating and deleting RAID units online. The 3ware CLI is supported under the following operating systems: Mac OS X 10.4.6 or later, running in a Mac Pro or Power Mac G5 (PowerPC-based) with PCI Express Windows. Windows 2000, Windows XP, and Windows Server 2003, both 32-bit and 64-bit. Linux. Redhat, SuSE, both 32-bit and 64-bit. FreeBSD, both 32-bit and 64-bit. Add the following lines in end of the line set. RemoteAccess 1 Browse to yourhost:888/ Select 3DM 2 Settings and change the default password 3ware to something secure. If you lock yourself out, you can copy the original config file back in place as it has the default password. To initial checking RAID drives use the below commands. Type the following command to view smart information about the hard disk behind 3Ware RAID card, enter:3ware RAID A local copy of 3ware code, utilities, and documentation is on bursa:/ISO . 3ware downloads are available at www.3ware/support/download. asp (the CLI and 3DM2 for 9xxx are compatible with 7xxx/8xxx controllers). 3ware has good linux support and the drivers are integrated in the kernel. org tree. In some cases you may need to use the BIOS or older utilities (7.7.x, or twcli help says version 2.00.00.032b ) for functionality specific to the older controllers. The below examples use the newer utilities. Adding a volume If you are replacing all the old drives with new larger ones, first delete the old volume, then remove and replace the drives with the new larger ones: When the 3ware card sees the new drives, it will add them as individual one-drive JBOD units. Delete the single units and create a RAID: You now have a new volume, which the OS should see (check /var/log/messages ). Assuming it is /dev/sdb . create a new disk label: And finally create the partition and filesystem and turn off the automatic fsck: Replacing a drive If a RAID unit is DEGRADED . a drive had died. Find out which port with twcli info c0 . Remove that port from the set: Then pull and replace the drive (verify the Serial on the drive sticker) and rescan. As mentioned above, the 3ware card will add the new drive as a one-drive JBOD units, so delete it and make the new drive the hot spare: The full process: Alternatively, if the DEGRADED drive isnt really bad (say, you pulled the wrong drive on a replace), you can just rescan the container and rebuild: vastus example For some functionality the older utilities must be used on vastus . 3dmd The configuration file for 3dmd is /etc/3dmd. conf . By default it runs on port 1080 and listens to remote connections but refuses access to settings. It is capable of sending email alerts but I have not tested that feature. The twcli (3ware command-line interface) tool
No comments:
Post a Comment