Não há espaço no dispositivo no CentOS7

4

Minha máquina cujo SO é CentOS7 tem que fazer backup dos dados 50G no MySQL. Mas, não há espaço no dispositivo. Mas há muitos espaços em /home . Como posso fazer com que o usuário tenha espaço suficiente para o MySQL armazenar dados? Acho que não há espaço em /dev/mapper/centos-root , como posso mover espaço de /home para / .

$ df -h
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root   50G   50G   20K 100% /
devtmpfs                 7.8G     0  7.8G   0% /dev
tmpfs                    7.8G   84K  7.8G   1% /dev/shm
tmpfs                    7.8G  2.6G  5.2G  34% /run
tmpfs                    7.8G     0  7.8G   0% /sys/fs/cgroup
/dev/mapper/centos-home  500G   20G  480G   4% /home
/dev/sda1                497M  241M  257M  49% /boot
tmpfs                    1.6G   16K  1.6G   1% /run/user/42
tmpfs                    1.6G     0  1.6G   0% /run/user/0
tmpfs                    1.6G  4.0K  1.6G   1% /run/user/1000

E g++ código de compilação falhou.

$ g++ test.cpp
Cannot create temporary file in /tmp/: No space left on device
[1]    6642 abort (core dumped)  g++ test.cpp
    
por GoingMyWay 21.04.2016 / 05:07

4 respostas

2

Primeiro, você precisa deixar sua partição root ("/") incorreta ou muitas coisas ruins acontecerão em seu sistema. Ele precisa de / tmp para ser gravável para muitas tarefas do sistema e do usuário.

Sua partição raiz é de apenas 50 GB, de modo que você nunca obterá o espaço necessário na estrutura de partições atual.

Suas opções seriam reparticionar para obter um / var (espaço vazio em / home) para dar espaço para os arquivos de dados do MySQL. o utilitário parted fará isso. Se é uma máquina hospedada que pode não ser fácil ou possível, e eu não recomendo brincar com esse utilitário se você não tiver certeza do que está fazendo.

Na falta disso, é um pouco um hack, mas você pode contornar isso com links simbólicos. Novamente, normalmente não é recomendado e você provavelmente precisaria levar sua máquina para o modo de usuário único, já que os daemons em execução terão bloqueios de arquivos impedindo que você se mova. A essência seria:

mv /var /home
ln -s /home/var /var

E, se você fizer isso, provavelmente precisará reinicializar a máquina para atualizá-la:

shutdown -r now

Por favor, pesquise o que você quer fazer, brincar com partições de disco pode ficar muito confuso se você não tiver um plano claro.

    
por 21.04.2016 / 05:53
0

Se você armazenar apenas backups do MySQL na partição / , será fácil mover os dados.

Suponha que você esteja armazenando seus dados em /opt/backup/ , você pode:

  • Pare o backup de gravar nesse diretório (se você estiver usando algum programa de backup)

  • Mova a pasta de backup em / para /home/ (ou qualquer pasta em /home que você quiser)

    # mv / opt / backup / / home /

  • Crie um link simbólico para o diretório antigo:

    # ln -s / home / backup / / opt / backup

  • Conceda a permissão adequada para garantir que seu programa de backup tenha permissão de gravação para /home/backup com chmod .

  • Inicie seu programa de backup novamente

por 21.04.2016 / 07:04
0

Clone o sistema operacional usando ferramentas profissionais como o acronis para um disco maior com partições maiores, já que os hard links podem causar problemas no estágio posterior. Use boot resgate para reconstruir o grub como depois de se mudar para o novo layout de disco centos pode não arrancar.

    
por 28.02.2017 / 06:09
0

Usando o CentOs 7, experimentei dois IDEs, mas tive o mesmo problema ao lidar com um projeto com aproximadamente 16000 arquivos.

"nenhum espaço deixado no dispositivo" foi registrado pelo IDE.
Ambos os IDEs estavam desligados, ou pararam de responder, ou as ações de depuração pararam ou pararam, travariam todo o sistema ou encerrariam a sessão da área de trabalho.

E no log de mensagens está escrito:

Oct  2 10:44:08 localhost gnome-session: inotify_add_watch("/home/tools/trunk/ext/boost/libs/hana/example/functional") failed: "No space left on device"

Acontece que o Kernel Centos tem um buffer para relógios de pasta, etc. Eu encontrei a solução por sfuser0000 em este site. . Esta é uma cópia da solução:

Common problem, temporary solution, increase the watches limit (to, say, 512K):

sudo sysctl fs.inotify.max_user_watches = 524288

(worked for me, but I'll probably go permanent and maybe larger, info below)

To make the change permanent, edit the file /etc/sysctl.conf and add this line to the end of the file:

fs.inotify.max_user_watches = 524288

Size info below:

"Can you increase the watches? By how much? Any tradeoffs? Short answer: Sure, no sweat. Go to straight to a half-million (524288) if you want...the additional memory used should be negligible on a modern system with 4GB+ of memory.

Each used inotify watch takes up 540 bytes (32-bit system), or 1 kB (double - on 64-bit) This comes out of kernel memory, which is unswappable. So, assuming you set the max at 524288, and all were used (improbable), you'd be using approx. 256MB/512MB of 32-bit/64-bit kernel memory

Note that your application will also use additional memory to keep track of the inotify handles, file/directory paths, etc. -- how much depends on its design."

    
por 03.10.2017 / 10:57