Productie AWS-instantie: we hebben een m5 ec2 nitro-instantie die query-optimalisatie nodig heeft. We zitten echter in een tijdnood en hebben besloten om hier tijdelijk geheugen en opslag op te gooien totdat we de optimalisatie van query's kunnen voltooien. (Bij voorbaat excuses)

Er is 50 GB op een EBS-volume (/dev/sda1) en nog eens 50 GB op een tweede volume (/dev/sdf) . Voor zover ik weet, gebruikt de EC2 slechts een van de 50 GB-volumes, dev/sda1 .

Linux Kernal-versie: 4.4.0-1128-aws 32GB RAM (M5a.2xlarge)

Onze /dev/nvme0n1p1 | (/tmp) directory loopt vol en er ontstaat een SQL 28 No Disk Space error en we willen de grootte van de /tmp directory vergroten van 20GB naar 50GB. terwijl we zoekopdrachten optimaliseren om de grootte van de tijdelijke databasebestanden (.MAI) die zijn opgeslagen in /tmp . te verkleinen

Waar ik ben: In onze testomgeving/EC2 (ook een M5.2xlarge) kon ik het volume vergroten tot 100GB en ik heb de stappen gevolgd in https://docs.aws.amazon.com/AWSEC2/latest /UserGuide/recognize-expanded-volume-linux.html

  • Dit is wat er te zien is als ik lsblk . start
NAME                MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT

nvme0n1             259:0    0   100G  0 disk                                                                                                         
├─nvme0n1p1         259:1    0    20G  0 part /                                                                                                       
├─nvme0n1p2         259:2    0     2G  0 part [SWAP]                                                                                                  
└─nvme0n1p3         259:3    0    28G  0 part                                                                                                         
  ├─vg_xxx-logs     251:0    0     8G  0 lvm  /var/log                                                                                                
  └─vg_xxx-app      251:1    0    19G  0 lvm  /home/xxx

Dit is wat wordt weergegeven als ik df -hT uitvoer:

Filesystem              Type      Size  Used Avail Use% Mounted on
udev                    devtmpfs   16G     0   16G   0% /dev
tmpfs                   tmpfs     3.1G  183M  3.0G   6% /run
/dev/nvme0n1p1          ext4       20G  8.6G   11G  45% /
tmpfs                   tmpfs      16G     0   16G   0% /dev/shm
tmpfs                   tmpfs     5.0M     0  5.0M   0% /run/lock
tmpfs                   tmpfs      16G     0   16G   0% /sys/fs/cgroup
/dev/loop0              squashfs   44M   44M     0 100% /snap/certbot/1788
/dev/loop1              squashfs  111M  111M     0 100% /snap/core/12834
/dev/loop3              squashfs   62M   62M     0 100% /snap/core20/1434
/dev/loop5              squashfs   56M   56M     0 100% /snap/core18/2409
/dev/loop4              squashfs   25M   25M     0 100% /snap/amazon-ssm-agent/4046
/dev/loop2              squashfs   56M   56M     0 100% /snap/core18/2284
/dev/mapper/vg_xxx-logs xfs       8.0G  362M  7.7G   5% /var/log
/dev/loop6              squashfs   26M   26M     0 100% /snap/amazon-ssm-agent/5656
/dev/loop8              squashfs   44M   44M     0 100% /snap/certbot/2035
/dev/loop7              squashfs   62M   62M     0 100% /snap/core20/1328
/dev/mapper/vg_xxx-app  xfs        19G  4.7G   15G  25% /home/xxx
tmpfs                   tmpfs     3.1G     0  3.1G   0% /run/user/1000
tmpfs                   tmpfs     3.1G     0  3.1G   0% /run/user/1001

Zoals je kunt zien, laat het zien dat nvme0n1 100GB beschikbaar heeft , maar de 3 partities zijn nog steeds gelijk aan 50GB . wanneer ik bij stap 7 kom in de AWS-documentatie over het uitbreiden van het bestandssysteem om de nieuw toegevoegde volumeruimte in te nemen, krijg ik het volgende:

[email protected]:~$ **sudo resize2fs /dev/nvme0n1p1**                                                                                           
resize2fs 1.42.13 (17-May-2015)                                                                                                                   
**The filesystem is already 5242619 (4k) blocks long.  Nothing to do!**

Ik heb een ext4-bestandssysteem (behalve dat ik twee lvms zie in de subdirectory van nvme0n1p3 maar ik denk niet dat dat iets verandert) en heb geprobeerd growpart , parted , maar deze online gevonden oplossingen zijn over het algemeen voor Ubuntu en niet specifiek voor EC2 EBS volumes, dus ik wil niet te veel afleiden van wat een door AWS geleverde oplossing zou moeten zijn die ik niet kan vinden. Dat gezegd hebbende, produceerden die ook foutmeldingen dat de schijf / map in gebruik was.

Ik heb begrepen dat AWS EBS een ec2 toestaat om de volumegrootte te vergroten en vervolgens het bestandssysteem uit te breiden zonder de instantie te stoppen of het apparaat dat wordt uitgebreid te ontkoppelen. Desalniettemin heb ik niet hetzelfde kunnen doen bij het stoppen van de staging-instantie waarop ik test. Ik sta open voor het stoppen van de instantie om dit voor elkaar te krijgen, maar zou het liever doen zonder het apparaat te ontkoppelen en/of de instantie te stoppen.

Ik kan de instantie ook upgraden om indien nodig meer RAM te leveren, maar dan moet ik eerst het bestandssysteem uitbreiden.

Alle hulp wordt op prijs gesteld!

answer

Een Linux-bestandssysteem uitbreiden na het vergroten of verkleinen van een volume:

  1. inloggen op instantie;

  2. Typ df -hom de informatie over het bestandssysteem weer te geven;

  3. Typ lsblk;

  4. Controleer uw volumenaam;

  5. growpartGebruik de volgende opdracht om de partitie op het rootvolume uit te breiden .

    Merk op dat er een spatie is tussen de apparaatnaam en het partitienummer.

    growpart /dev/nvme0n1 1
    
    # (1 = number of partitions)
    
  6. Controleer de maat nogmaals met df -henlsblk

  7. Breid na het uitbreiden van de partitie het hele bestandssysteem uitresize2fs /dev/nvme0n1p1