[LINUX] Déplacer le point de montage / var, / opt vers un autre stockage (GPT)

introduction

Cette fois, il y avait un problème que la capacité du serveur sur site que nous gérons était serrée. Le serveur en question avait CentOS 7 pré-installé et fonctionnait tel quel. La configuration de stockage de ce serveur est

Il est devenu. Dans les paramètres préinstallés

Ensuite, «/ var» et «/ opt», qui contiennent des bases de données, etc., sont progressivement devenus gras et ont rendu «/ dev / sda1» serré, et une erreur de serveur a commencé à se produire. De plus, / home contient la source de la page Web et des données personnelles, mais il n'est pas utilisé au plus 1 To, il semble donc peu probable que cela augmente rapidement.

J'ai donc décidé de déplacer / var, / opt de / dev / sda vers / dev / sdb.

À ce moment-là

  1. Réduisez / dev / sdb1 à 3 To
  2. Coupez la partition et créez 1 To de / dev / sdb2 et 2 To de / dev / sdb3
  3. Transférez les données de / var, / opt
  4. Définissez le point de montage / var sur / dev / sdb3 et / opt sur / dev / sdb2

La migration est effectuée selon la procédure. De plus, / dev / sdb est formaté au format GPT pour gérer une grande capacité de stockage. La procédure peut être légèrement différente du format MBR. En particulier

--Utilisez fdisk au lieu de gdisk

Etc.

À propos de SELinux

Je travaille sur le changement du point de montage, mais il semble que l'étiquetage SELinux doit être correctement défini à ce moment-là. Veuillez noter que je ne suis pas familier avec SELinux et que je le fais dans un environnement disable.

Réduire la partition

Réduisez d'abord la partition / dev / sdb1.

Tout d'abord, démontez / dev / sdb1.

# umount /dev/sdb1

Ensuite, redimensionnez le système de fichiers.

# e2fsck -f /dev/sdb1
# resize2fs /dev/sdb1 3000G

resize2fs 1.42.9 (28-Dec-2013)

Resizing the filesystem on /dev/sdb1 to 786432000 (4k) blocks.

resize2fs est une commande pour redimensionner le système de fichiers. Cette commande ne fonctionne pas sur les partitions. Cela défragmentera les données dispersées dans la partition et modifiera les informations dans le superbloc. Cela prendra un certain temps. (Référence: https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/6/html/storage_administration_guide/ext4grow)

Ici, calculez le nombre d'octets de capacité dont vous disposez à partir de la taille du bloc de sortie après le redimensionnement. Dans cet exemple, 1 bloc = 4 ko = 4096 B, donc la capacité est

786432000 * 4096 = 3,221,225,472,000 B

Ce sera.

Puis rétrécissez la partition. Assurez-vous que / dev / sdb n'est pas monté et redimensionnez la partition en utilisant le mode interactif de parted.


# parted /dev/sdb
(parted) unit b  #Réglez l'unité de sortie sur Byte
(parted) p #Informations sur le courant de sortie
Model: ASR8405 RAID1-data (scsi)
Disk /dev/sdb: 5996837601280B
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number  Start     End             Size            File system  Name  Flags
 1      1048576B  5996836552703B  5996835504128B  ext4

Ici, puisque le début de / dev / sdb1 est 1048576 B, ajoutez le décalage de début à la taille (octet) donnée précédemment pour calculer la position de fin.

1,048,576 + 3,221,225,472,000 = 3,221,226,520,576‬ B

Ceci est une continuation de la console de dialogue «parted».


(parted) resizepart
Partition number? 1

End?  [5996836552192B]? 3221226520576‬B

Warning: Shrinking a partition can cause data loss, are you sure you want to continue?
Yes/No? Yes #J'ai déjà redimensionné le système de fichiers, donc ça va

(parted) p

#Abréviation

Disk Flags:
Number  Start     End             Size            File system  Name  Flags
 1      1048576B  3221226521087B  3221225472512B  ext4

(parted) q #J'ai pu confirmer que la taille a été modifiée correctement, alors j'ai arrêté de me séparer

Vous pouvez maintenant voir que / dev / sdb1 a diminué correctement.

Couper une nouvelle partition

Ensuite, créez / dev / sdb2. Nous utiliserons gdisk pour cette tâche. Je peux créer une nouvelle partition avec parted, mais je n'ai pas pu l'aligner correctement. gdisk s'aligne également de manière transparente, j'ai donc décidé de l'utiliser lors du partitionnement. Au contraire, il est rapide de redimensionner la partition avec «parted».

Ici, on suppose que «/ dev / sdb2» est 1 To comme «opt» et «/ dev / sdb3» est 2 To comme «/ var».

Voir l'aide pour la commande interactive gdisk. Chaque commande utilisée ici

-- n: créer une nouvelle partition -- c: Renommer la partition --p: Imprimer la table de partition -- w: Ecrire la partition

Ainsi, aucune modification n'est écrite tant que vous n'exécutez pas w.

# gdisk /dev/sdb

GPT fdisk (gdisk) version 0.8.10
 
Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present

Found valid GPT with protective MBR; using GPT.


Command (? for help): n
Partition number (2-128, default 2): 2
First sector (34-11712573406, default = 6291460096) or {+-}size{KMGTP}:
Last sector (6291460096-11712573406, default = 11712573406) or {+-}size{KMGTP}: +1T
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300):
Changed type of partition to 'Linux filesystem'

Command (? for help): n
Partition number (3-128, default 3): 3
First sector (34-11712573406, default = 8438943744) or {+-}size{KMGTP}:
Last sector (8438943744-11712573406, default = 11712573406) or {+-}size{KMGTP}:
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300):
Changed type of partition to 'Linux filesystem'
 
Command (? for help): c
Partition number (1-3): 2
Enter name: opt
 
Command (? for help): c
Partition number (1-3): 3
Enter name: var
 
Command (? for help): p
Disk /dev/sdb: 11712573440 sectors, 5.5 TiB
Logical sector size: 512 bytes
Disk identifier (GUID): BE239631-679B-474D-B43A-305F9146AE5D
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 11712573406
Partitions will be aligned on 2048-sector boundaries
Total free space is 4061 sectors (2.0 MiB)
 
Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048      6291458048   2.9 TiB     0700
   2      6291460096      8438943743   1024.0 GiB  8300  opt
   3      8438943744     11712573406   1.5 TiB     8300  var
 
Command (? for help): w
 
Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!
 
Do you want to proceed? (Y/N): Y
OK; writing new GUID partition table (GPT) to /dev/sdb.
Warning: The kernel is still using the old partition table.
The new table will be used at the next reboot.
The operation has completed successfully.

Maintenant que la partition a été coupée, redémarrez-la pour reconnaître le périphérique.

Formater une nouvelle partition

Formatez ensuite chaque partition nouvellement coupée avec ext4. Utilisez la commande mkfs.ext4 pour formater avec ext4.

# mkfs.ext4 /dev/sdb2
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
67108864 inodes, 268435456 blocks
13421772 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2415919104
8192 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
        4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
        102400000, 214990848
 
Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

 
# mkfs.ext4 /dev/sdb3
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
102301696 inodes, 409203707 blocks
20460185 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2558525440
12488 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
        4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
        102400000, 214990848
 
Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

Le formatage est maintenant terminé.

Déplacez / var, / opt vers une partition nouvellement coupée

Copie des données

Premièrement, s'il y a un service qui accède au fichier existant / var, / opt (dans / dev / sda1), le travail de migration ne peut pas être effectué, alors entrez en mode mono-utilisateur.

# init 1

Dans ce travail, le serveur n'a pas été exploité directement, mais à cause de la collecte de journaux, cela a été fait via ssh, donc seul ce travail a directement touché le corps principal et a démarré network, sshd.

# systemctl start network.service
# systemctl start sshd.service

Ensuite, montez temporairement / dev / sdb2 et / dev / sdb3 et copiez respectivement le contenu des actuels / opt et / var.

# cd /mnt
# mkdir opt_new var_new
# mount /dev/sdb2 opt_new/
# mount /dev/sdb3 var_new/
# rsync -au /opt/* opt_new/
# rsync -au /var/* var_new/

Maintenant, le / opt dans / dev / sda1 est copié dans / dev / sdb2 et le / var dans / dev / sda1 est copié dans / dev / sdb3. ..

Démontez-le et laissez-le fsck juste au cas où.

# umount /dev/sdb2
# umount /dev/sdb3

# e2fsck -f /dev/sdb2
e2fsck 1.42.9 (28-Dec-2013)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/sdb2: 312692/67108864 files (0.2% non-contiguous), 9517164/268435456 blocks

# e2fsck -f /dev/sdb3
e2fsck 1.42.9 (28-Dec-2013)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/sdb3: 231758/102301696 files (0.2% non-contiguous), 11135325/409203707 blocks

C'est bon.

Créer un répertoire de montage

Ensuite, changez respectivement les paramètres «/ opt» et «/ var» actuels par «/ opt.org» et «/ var.org» et créez les répertoires de destination de montage «/ opt» et «/ var».

# cd /
# mv opt opt.org
# mv var var.org
# mkdir opt var

Édition de / etc / fstab

Puis éditez / etc / fstab. Avant cela, vérifiez l'UUID de l'appareil. Par souci de simplicité, l'UUID a été modifié pour le rendre plus facile à comprendre, veuillez donc le lire comme il convient.

# ls -l /dev/disk/by-uuid/
total 0
lrwxrwxrwx 1 root root 10 Jul  2 14:51 33333333-3333-3333-3333-333333333333 -> ../../sdb3
lrwxrwxrwx 1 root root 10 Jul  2 14:51 22222222-2222-2222-2222-222222222222 -> ../../sdb2
lrwxrwxrwx 1 root root 10 Jul  2 14:23 11111111-1111-1111-1111-111111111111 -> ../../sdb1

Si vous pouvez confirmer, éditez / etc / fstab et spécifiez / dev / sdb2 comme point de montage / opt et / dev / sdb3 comme point de montage / var.

/etc/fstab(Extrait uniquement lorsque cela est pertinent)


UUID=11111111-1111-1111-1111-111111111111 /home                   ext4     defaults        1 2
UUID=22222222-2222-2222-2222-222222222222 /opt                    ext4     defaults        1 2
UUID=33333333-3333-3333-3333-333333333333 /var                    ext4     defaults        1 2

Cela le redémarrera.

Confirmation

Après l'avoir démarré, vérifiez-le avec df (extrait uniquement là où c'est pertinent).

# df -Th
Filesystem                             Type      Size  Used Avail Use% Mounted on
/dev/sdb1                              ext4      2.9T  676G  2.1T  25% /home
/dev/sdb2                              ext4     1008G   21G  937G   3% /opt
/dev/sdb3                              ext4      1.6T   18G  1.5T   2% /var

Il est monté normalement.

En outre, il a été confirmé que les services qui utilisent «/ opt» et «/ var» fonctionnent correctement.

finalement

À cette époque, le stockage peut être assemblé de manière variable dans le cloud, je pense donc qu'un travail aussi dangereux est moins susceptible d'être effectué, mais veuillez vous y référer si vous en avez la possibilité. N'oubliez pas de faire une sauvegarde et de la garder en sécurité.

Recommended Posts

Déplacer le point de montage / var, / opt vers un autre stockage (GPT)