Blogs

[Linux on Power] Instalacja RHEL 9 z LVM

By Michal Wiktorek posted Mon September 09, 2024 07:59 PM

  

English version of this article:
https://community.ibm.com/community/user/power/blogs/michal-wiktorek/2024/09/10/installation-of-rhel-9-with-lvm

Tekst został utworzony dla społeczności Poland Power User Group

Wstęp

Jedną z wielu zalet serwerów IBM Power, jest możliwość równoległej pracy wielu systemów operacyjnych. Architektura POWER głównie kojarzy się z systemami AIX oraz IBM i, jednak dystrybucje Linux z pewnością mają tutaj również swoje miejsce i zastosowanie.

Można oczywiście dyskutować o tym jest lepsze - AIX czy Linux, jednak myślę że najważniejsze to dobierać system do wymagań i potrzeb biznesowych, a w tym przypadku jedno nie wyklucza drugiego w ramach tej samej platformy sprzętowej. Niewątpliwą zaletą dystrybucji Linux jest wysoka dostępność oprogramowania i repozytoriów, więc użycie architektury ppc64le może być sensownym wyborem np. dla baz danych popularnych na serwerach x86, a które np. dla AIX wymagałoby kompilacji ze źródeł w przypadku gdy dostawca oprogramowania nie zadbał o dostępność dla różnych systemów operacyjnych.
Zaletą działania Linux na architekturze ppc64le jest m.in możliwość korzystania z wydajności procesorów Power10, oraz 8 wątków per Core (co na ten moment jest niemożliwe w przypadku serwerów x86), a także profitów wirtualizacji PowerVM i np. redundancji komponentów sprzętowych na poziomie VIOS, użycia NPIV itd.

W niniejszym artykule chciałbym opisać coś, co uważam że nie zostało wystarczająco dobrze udokumentowane i może sprawić wiele trudności, a chodzi o instalację RedHat Enterprise Linux z LVM.

W kolejnych częściach cyklu Linux on Power, chciałbym opisać dalsze kroki po instalacji czyli instalację Cloud-Init, konfigurację oraz przygotowanie Image dla PowerVC, aby gotowy obraz RHEL 9 z LVM można było wykorzystać do powoływania LPAR-ów w ramach chmury prywatnej.
Proces ręcznej instalacji jest nieco żmudny, ale będzie wymagany tylko raz jeśli posłuży do późniejszego utworzenia gotowego Image'u.

Gotowy image qcow2 od Red Hat

W przypadku AIX dość wygodną formą jest użycie Image'u Cloud-Ready, czyli obrazu systemu który jest gotowy do użycia w chmurze prywatnej i ma w sobie już cloud-init. 
Analogicznie do tego pomyślałem że dobrą odpowiednią formą pobrania takiego obrazu może być odpowiednika ze stron RedHat.
Znalazłem więc gotowy obraz qcow2 i wykonałem dd do dysku który miałem już wykreowany i przygotowany pod image. Image oraz odpowiedni Compute Template przygotowałem w PowerVC i przystapiłem do testowego powołania. Warto zwrócić uwagę na to, że gotowy obraz nie ma możliwości zalogowania po haśle, więc trzeba mieć skonfigurowane klucze ssh w PowerVC.

Po powołaniu LPAR-a z RHEL 9, można zobaczyć taki układ partycji:

# df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        4.0M     0  4.0M   0% /dev
tmpfs           3.7G     0  3.7G   0% /dev/shm
tmpfs           1.5G   22M  1.5G   2% /run
/dev/sdb3        32G  2.1G   30G   7% /
/dev/sda2       536M  184M  353M  35% /boot
tmpfs           755M     0  755M   0% /run/user/0


Można oczywiście dyskutować o tym czy w dzisiejszych czasach w przypadku systemów działających w chmurze jest sens stosowania LVM dla dysków systemowych. Z pewnością zarówno podejście ze zwykłymi partycjami, jak i LVM znajdzie swoich zwolenników, jak i przeciwników.

Osobiście lubię podejście znane z systemów AIX, więc nie przepadam za klasycznymi partycjami i preferuję korzystanie z zalet LVM. Oczywiście każdy ma prawo do swojej opinii, jednak system działający na klasycznych partycjach, które uważam za nieco przestarzały wynalazek, nie był dla mnie satysfakcjonujący.
Na stronach RedHata jest dostępne narzędzie Image Builder do przygotowania customowego obrazu, jednak obsługuje jedynie architekturę x86_64 oraz aarch64. Niestety nie przewidziano tutaj architektury ppc64le.

W związku z tym uznałem że prościej będzie przeprowadzić instalację RHEL 9 i przygotować własny Image z LVM

Pomocniczo jako punkt odniesienia wziąłem układ z systemu AIX 7.2 (oczywiście nie 1 do 1, bo nie chodzi o to żeby z Linuxa za wszelką cenę robić AIX-a :))

Name             Mount Pt               VFS   
/dev/hd4         /                      jfs2  
/dev/hd1         /home                  jfs2  
/dev/hd2         /usr                   jfs2  
/dev/hd9var      /var                   jfs2  
/dev/hd3         /tmp                   jfs2  
/dev/hd11admin   /admin                 jfs2  
/dev/hd10opt     /opt                   jfs2  
/dev/livedump    /var/adm/ras/livedump  jfs2  
/proc            /proc                  procfs

Instalacja z ISO

Warto zwrócić uwagę, że LPAR na którym zostanie zainstalowany RHEL 9.3 musi mieć profil w trybie kompatybilności procesora Power10 - w przypadku trybu kompatybilności np. Power9, zostanie zwrócony kernel panic.

Obraz ISO należy pobrać ze strony RedHat, zwracając uwagę na odpowiednią architekturę, czyli ppc64le i nazwę produktu, czyli "Red Hat Entrerprise Linux for Power, little endian".
Warto wiedzieć że serwery Power począwszy od generacji Power8 obsługują kolejność bajtów zarówno w standardzie Big Endian jak i Little Endian, ale nowe dystrybucje Linux raczej są wydawane tylko w wersji Little Endian.

Po załadowaniu obrazu instalacyjnego z ISO (w tym przypadku za pośrednictwem virtual optical device po vSCSI), i użyciu wirtualnego terminala konsoli HMC do wybranego LPAR-a, powinniśmy zobaczyć ekran GRUB

                               GRUB version 2.06

 +----------------------------------------------------------------------------+
 |*Install Red Hat Enterprise Linux 9.3 (64-bit kernel)                       | 
 | Test this media & install Red Hat Enterprise Linux 9.3  (64-bit kernel)    |
 | Rescue a Red Hat Enterprise Linux system (64-bit kernel)                   |
 | Other options...                                                           |
 |                                                                            |
 |                                                                            |
 |                                                                            |
 |                                                                            |
 |                                                                            |
 |                                                                            |
 |                                                                            |
 |                                                                            | 
 +----------------------------------------------------------------------------+

      Use the ^ and v keys to select which entry is highlighted.          
      Press enter to boot the selected OS, `e' to edit the commands       
      before booting or `c' for a command-line.                           


Po zatwierdzeniu pozycji instalacyjnej, powinien pojawić się ekran z możliwością wyboru trybu instalacji. W tym artykule zakładam korzystanie z wirtualizacji PowerVM, czyli bez opcji bez karty graficznej. 
Red Hat zaleca instalację systemu RHEL 9 z wykorzystaniem środowiska graficznego, a tryb tekstowy jest względem niego nieco okrojony. Nie wiem czy jest możliwe użycie na tym etapie VNC, ale mi w każdym razie nie udało się tego zrobić.
Jedyną możliwą opcją instalacji dla mnie był tryb tekstowy, czyli opcja nr 2.

Starting installer, one moment...
anaconda 34.25.3.8-1.el9 for Red Hat Enterprise Linux 9.3 started.
 * installation log files are stored in /tmp during the installation
 * shell is available on TTY2
 * when reporting a bug add logs from /tmp as separate text/plain attachments

X or window manager startup failed, falling back to text mode.
================================================================================
================================================================================
X was unable to start on your machine. Would you like to start VNC to connect to
this computer from another computer and perform a graphical installation or
continue with a text mode installation?

1) Start VNC
2) Use text mode

Please make a selection from the above ['c' to continue, 'q' to quit, 'r' to
refresh]: 





[anaconda]1:main* 2:shell  3:log  4:storage-log >Switch tab: Alt+Tab | Help: F1 

Ekran instalatora anaconda w trybie tekstowym wygląda tak jak poniżej. Teoretycznie pozwala na wybranie docelowych puktów montowania (opcja 5 - Installation Destination), jednak to co mnie bardzo zaskoczyło, to brak możliwości konfiguracji LVM w tym trybie tekstowym. Instalator Anaconda w trybie tekstowym pozwala jedynie na wskazanie już istniejących urządzeń.

Warning: Processor has Simultaneous Multithreading (SMT) enabled

Simultaneous Multithreading (SMT) may improve performance for certain workloads,
but introduces several publicly disclosed security issues. You can disable SMT,
which may impact performance. Please read https://red.ht/rhel-smt to understand
potential risks and learn about ways to mitigate these risks.
================================================================================
================================================================================
Installation

1) [x] Language settings                 2) [x] Time settings
       (English (United States))                (America/New_York timezone)
3) [!] Installation source               4) [!] Software selection
       (Processing...)                          (Processing...)
5) [!] Installation Destination          6) [x] Kdump
       (Processing...)                          (Kdump is enabled)
7) [x] Network configuration             8) [!] Root password
       (Unknown)                                (Root account is disabled)
9) [!] User creation
       (No user will be created)

Please make a selection from the above ['b' to begin installation, 'q' to quit,
'r' to refresh]: 
[anaconda]1:main* 2:shell  3:log  4:storage-log >Switch tab: Alt+Tab | Help: F1 

Jeśli nie jest możliwe użycie trybu graficznego, a tryb tekstowy jest aż tak ograniczony, to w jaki sposób ustawić LVM?

W trakcie instalacji istnieje możliwość przejścia do sesji shell, ale UWAGA:
Instalator tekstowy działa na sesji tmux (https://github.com/tmux/tmux/wiki), więc żeby przełączyć się na sesję shell należy użyć skrótu klawiszowego CTRL +B a następnie 2 (zgodnie z opisem na dolnej belce ekranu).
Warto zwrócić uwagę że tutaj może się pojawić problem z obsługą tego skrótu klawiszego, w zależności od przeglądarki (gdy korzystamy w wersji GUI wirtualnego terminala) lub terminala z połączeniem ssh do konsoli HMC. 
Jeżeli skrót klawiszowy nie działa - spróbuj połączyć się za pomocą innego klienta SSH lub przeglądarki internetowej w przypadku konsoli z GUI).

Partycjonowanie

Potrzebne są 3 partycje:

  • PPC PReP Boot - partycja zawierająca boot loader YABOOT. Powinna mieć między 4 a 8 MB.
  • partycja boot (/boot)
  • partycja pod Physical Volume LVM

Najbardziej elastycznym rozwiązaniem byłoby użycie Physical Volume bezpośrednio na dostępnym dysku, czyli bez użycia partycji. Niestety w przypadku przestrzeni dyskowej dla systemu operacyjnego nie jest to wspierane przez Red Hat.

Baza wiedzy RedHata mówi o tym że zarówno /boot jak i /boot/efi musi być na lokalnej partycji, bez LVM: https://access.redhat.com/solutions/2022923

W sesji shell, aby utworzyć PV (Physical Volume) należy najpierw odnaleźć nazwę urządzenia dyskowego. W moim przypadku użyty jest device mapper z obsługą multipathingu, więc jest to urządzenie /dev/mapper/mpatha na które składają sda i sdb. Urządzenia dyskowe można podejrzeć używając m.in. polecenia lsblk lub multipath -ll, jeśli korzystamy z obsługi wielu ścieżek.

[anaconda root@localhost ~]# lsblk
NAME        MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINTS
loop0         7:0    0 753.9M  1 loop  
loop1         7:1    0     3G  1 loop  
├─live-rw   253:1    0     3G  0 dm    /
└─live-base 253:2    0     3G  1 dm    
loop2         7:2    0    32G  0 loop  
└─live-rw   253:1    0     3G  0 dm    /
sda           8:0    0    32G  0 disk  
└─mpatha    253:0    0    32G  0 mpath 
sdb           8:16   0    32G  0 disk  
└─mpatha    253:0    0    32G  0 mpath 
sr0          11:0    1   7.9G  0 rom   /run/install/sources/mount-0000-cdrom
                                       /run/install/repo
zram0       252:0    0   7.8G  0 disk  [SWAP]

# multipath -ll
mpatha (XXXXXXXXXXXXXX00000000000XXX) dm-0 AIX,VDASD
size=32G features='1 queue_if_no_path' hwhandler='0' wp=rw
`-+- policy='service-time 0' prio=1 status=active
  |- 0:0:1:0 sdb 8:16 active ready running
  `- 1:0:2:0 sda 8:0  active ready running


Narzędzie fdisk

Tworzenie partycji za pomocą fdisk nie jest w mojej ocenie zbyt intuicyjnym zajęciem, dlatego starałem się opisać to możliwie jasno i klarownie.

Za pomocą narzędzia fdisk wybieramy urządzenie które ma posłużyć jako dysk systemowy:

[anaconda root@localhost ~]# fdisk /dev/mapper/mpatha

Welcome to fdisk (util-linux 2.37.4).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

This disk is currently in use - repartitioning is probably a bad idea.
It's recommended to umount all file systems, and swapoff all swap
partitions on this disk.


Command (m for help): 

Tworzymy pierwszą partycję o rozmiarze 4 MB, podając kolejno "n" (new partition), "p" (primary partition), 1, (partition number), first sector (wystarczy enter by zatwierdzić wartość default), last sector (podajemy rozmiar wpisując +4MB)

Command (m for help): n
Partition type
   p   primary (0 primary, 0 extended, 4 free)
   e   extended (container for logical partitions)
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-67108863, default 2048): 
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-67108863, default 67108863): 
 +4M

Created a new partition 1 of type 'Linux' and of size 4 MiB.

Command (m for help): 

Domyślnie została utworzona partycja typu Linux. Potrzebujemy ją zmienić na "PPC PRep Boot", więc zmieniamy jej typ poprzez podanie litery "t" (type) oraz kodu 41, który odpowiada "41 PPC PReP Boot"

Command (m for help): t
Selected partition 1
Hex code or alias (type L to list all): 41
Changed type of partition 'Linux' to 'PPC PReP Boot'.

Command (m for help): 

Listę wszystkich kodów można wylistować podając "l"

Command (m for help): l

00 Empty            24 NEC DOS          81 Minix / old Lin  bf Solaris        
01 FAT12            27 Hidden NTFS Win  82 Linux swap / So  c1 DRDOS/sec (FAT-
02 XENIX root       39 Plan 9           83 Linux            c4 DRDOS/sec (FAT-
03 XENIX usr        3c PartitionMagic   84 OS/2 hidden or   c6 DRDOS/sec (FAT-
04 FAT16 <32M       40 Venix 80286      85 Linux extended   c7 Syrinx         
05 Extended         41 PPC PReP Boot    86 NTFS volume set  da Non-FS data    
06 FAT16            42 SFS              87 NTFS volume set  db CP/M / CTOS / .
07 HPFS/NTFS/exFAT  4d QNX4.x           88 Linux plaintext  de Dell Utility   
08 AIX              4e QNX4.x 2nd part  8e Linux LVM        df BootIt         
09 AIX bootable     4f QNX4.x 3rd part  93 Amoeba           e1 DOS access     
0a OS/2 Boot Manag  50 OnTrack DM       94 Amoeba BBT       e3 DOS R/O        
0b W95 FAT32        51 OnTrack DM6 Aux  9f BSD/OS           e4 SpeedStor      
0c W95 FAT32 (LBA)  52 CP/M             a0 IBM Thinkpad hi  ea Linux extended 
0e W95 FAT16 (LBA)  53 OnTrack DM6 Aux  a5 FreeBSD          eb BeOS fs        
0f W95 Ext'd (LBA)  54 OnTrackDM6       a6 OpenBSD          ee GPT            
10 OPUS             55 EZ-Drive         a7 NeXTSTEP         ef EFI (FAT-12/16/
11 Hidden FAT12     56 Golden Bow       a8 Darwin UFS       f0 Linux/PA-RISC b
12 Compaq diagnost  5c Priam Edisk      a9 NetBSD           f1 SpeedStor      
14 Hidden FAT16 <3  61 SpeedStor        ab Darwin boot      f4 SpeedStor      
16 Hidden FAT16     63 GNU HURD or Sys  af HFS / HFS+       f2 DOS secondary  
17 Hidden HPFS/NTF  64 Novell Netware   b7 BSDI fs          fb VMware VMFS    
18 AST SmartSleep   65 Novell Netware   b8 BSDI swap        fc VMware VMKCORE 
1b Hidden W95 FAT3  70 DiskSecure Mult  bb Boot Wizard hid  fd Linux raid auto
1c Hidden W95 FAT3  75 PC/IX            bc Acronis FAT32 L  fe LANstep        
1e Hidden W95 FAT1  80 Old Minix        be Solaris boot     ff BBT            

Kolejna partycja której potrzebujemy to Boot. Wg dokumentacji RedHat, dla RHEL 9, rozmiar /boot powinien wynosić przynajmniej 1 GB.
(https://access.redhat.com/documentation/gu-in/red_hat_enterprise_linux/9/html/performing_a_standard_rhel_9_installation/partitioning-reference_installing-rhel)

Tworzymy drugą partycję o rozmiarze 1 GB, podając kolejno "n" (new partition), "p" (primary partition), 2, (partition number), first sector (wystarczy enter by zatwierdzić wartość default), last sector (podajemy rozmiar wpisując +1GB)

Command (m for help): n
Partition type
   p   primary (1 primary, 0 extended, 3 free)
   e   extended (container for logical partitions)
Select (default p): p
Partition number (2-4, default 2): 2
First sector (10240-67108863, default 10240): 
Last sector, +/-sectors or +/-size{K,M,G,T,P} (10240-67108863, default 67108863): 
  +1G

Created a new partition 2 of type 'Linux' and of size 1 GiB.

Typ partycji powinien zostać domyślnie ustawiony jako Linux i taki typ można zostawić.

Ostatnia partycja którą chcemy stworzyć, to partycja przeznaczona dla LVM:

Tworzymy trzecią partycję o rozmiarze wykorzystując resztę dostępnej przestrzeni, podając kolejno "n" (new partition), "p" (primary partition), 3, (partition number), first sector (wystarczy enter by zatwierdzić wartość default), last sector (zatwierdzamy wartość default, która powinna wskazywać na ostatni sektor)

Command (m for help): n
Partition type
   p   primary (2 primary, 0 extended, 2 free)
   e   extended (container for logical partitions)
Select (default p): p
Partition number (3,4, default 3): 3
First sector (2107392-67108863, default 2107392): 
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2107392-67108863, default 67108863): 


Created a new partition 3 of type 'Linux' and of size 31 GiB.

Command (m for help): 

Typ trzeciej partycji należy zmienić na "Linux LVM", podając kod 8e

Command (m for help): t
Partition number (1-3, default 3): 3
Hex code or alias (type L to list all): 8e

Changed type of partition 'Linux' to 'Linux LVM'.

Command (m for help): 

Na koniec należy zapisać tablicę partycji podając "w", oraz "q" aby wyjść. Utworzone partycje można wylistować poprzez "p"

Command (m for help): w
The partition table has been altered.

The kernel still uses the old partitions. The new table will be used at the next reboot. 

Syncing disks.

Command (m for help): p

Disk /dev/mapper/mpatha: 32 GiB, 34359738368 bytes, 67108864 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x14fc63d2

Device              Boot   Start      End  Sectors Size Id Type
/dev/mapper/mpatha1         2048    10239     8192   4M 41 PPC PReP Boot
/dev/mapper/mpatha2        10240  2107391  2097152   1G 83 Linux
/dev/mapper/mpatha3      2107392 67108863 65001472  31G 8e Linux LVM

Command (m for help): q

Teraz, gdy mamy już utworzone partycje, wreszcie nadszedł czas na LVM i utworzenie PV (Physical Volume)

Używamy standardowego polecenia pvcreate i jako parametr wskazujemy urządzenie odnoszące się do trzeciej partycji urządzenia dyskowego:

[anaconda root@localhost ~]# pvcreate /dev/mapper/mpatha3 
  Physical volume "/dev/mapper/mpatha3" successfully created.
  Creating devices file /etc/lvm/devices/system.devices
[anaconda root@localhost ~]# 

Tworzymy VG (Volume Group) o nazwie rootvg (nazwę pożyczyłem z AIX-a ;))

[anaconda root@localhost ~]# vgcreate rootvg /dev/mapper/mpatha3 
  Volume group "rootvg" successfully created

Teraz czas na LV (Logical Volumes). Jest tu oczywiście dowolność, natomiast dla przykładu zaproponowałem przykładowy rozkład. Punkty montowania i ilość wolumenów jest kwestią indywidualną.
Wolumeny w LVM można rozszerzać, więc lepiej jest je początkowo utworzyć na poziomie wystarczającym i powiększać je wraz z późniejszymi potrzebami (warto też pamiętać że filesystemu XFS w RHEL nie da się pomniejszać, tak jak w przypadku JFS2 w AIX)

LV		 |	Mountpoint | Size   |
-----------------------|---------
lv_root  |	/		   | 1 GB   |
lv_usr	 |	/usr	   | 4 GB   |
lv_home  |	/home	   | 512 MB |
lv_opt   |	/opt	   | 512 MB |
lv_var   |	/var       | 3 GB   |
lv_tmp   |	/tmp       | 512 MB |
lv_swap  |	SWAP	   | 16 GB  |
---------------------------------

Przykładowe komendy do utworzenia LV mogą wyglądać następująco:

# lvcreate -n lv_root -L 1G rootvg
# lvcreate -n lv_usr  -L 4G rootvg
# lvcreate -n lv_home -L 512M rootvg
# lvcreate -n lv_opt  -L 512M rootvg
# lvcreate -n lv_var  -L 3G rootvg
# lvcreate -n lv_tmp  -L 512M rootvg
# lvcreate -n lv_swap -L 16G rootvg

[anaconda root@localhost ~]# lvcreate -n lv_root -L 1G rootvg
  Logical volume "lv_root" created.
[anaconda root@localhost ~]# lvcreate -n lv_usr  -L 2G rootvg
  Logical volume "lv_usr" created.
[anaconda root@localhost ~]# lvcreate -n lv_home -L 512M rootvg
  Logical volume "lv_home" created.
[anaconda root@localhost ~]# lvcreate -n lv_opt  -L 512M rootvg
  Logical volume "lv_opt" created.
[anaconda root@localhost ~]# lvcreate -n lv_var  -L 3G rootvg
  Logical volume "lv_var" created.
[anaconda root@localhost ~]# lvcreate -n lv_tmp  -L 512M rootvg
  Logical volume "lv_tmp" created.
[anaconda root@localhost ~]# lvcreate -n lv_swap -L 16G rootvg
  Logical volume "lv_swap" created.


Gotowe logiczne wolumeny można wylistować poleceniami lvs lub lvscan

[anaconda root@localhost ~]# lvs
  LV      VG     Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lv_home rootvg -wi-a----- 512.00m                                                    
  lv_opt  rootvg -wi-a----- 512.00m                                                    
  lv_root rootvg -wi-a-----   1.00g                                                    
  lv_swap rootvg -wi-a-----   16.00g                                                    
  lv_tmp  rootvg -wi-a----- 512.00m                                                    
  lv_usr  rootvg -wi-a-----   2.00g                                                    
  lv_var  rootvg -wi-a-----   3.00g                                                    

Po utworzeniu wszystkich LV, możemy wykonać reboot i ponownie wchodzimy do trybu SMS żeby ponownie załadować instalację systemu. Powrót do ekranu instalatora Anaconda i przeskanowanie dysków może w tym przypadku nie dać takiej pewności jak restart i tym samym ponowne wykrycie wszystkich urządzeń.

Po ponownym uruchomieniu instalatora w trybie tekstowym, należy wybrać opcję: 5) Installation Destination, po czym wpisujemy "c" i zatwierdzamy enterem.

Probing storage...
================================================================================
================================================================================
Installation Destination

1) [x] VDASD: 32 GiB (mpatha), XXXXXXXXXXXXX00000000000XXXX

1 disk selected; 32 GiB capacity; 1008 KiB free

Please make a selection from the above ['c' to continue, 'q' to quit, 'r' to
refresh]: c
[anaconda]1:main* 2:shell  3:log  4:storage-log >Switch tab: Alt+Tab | Help: F1 

Zmieniamy wybraną domyślnie pozycję na "Manually assign mount points", czyli wciskamy 4 i zatwierdzamy, po czym przechodzimy dalej ("c" i enter)

================================================================================
================================================================================
Partitioning Options

1) [ ] Replace Existing Linux system(s)
2) [x] Use All Space
3) [ ] Use Free Space
4) [ ] Manually assign mount points

Installation requires partitioning of your hard drive. Select what space to use
for the install target or manually assign mount points.

Please make a selection from the above ['c' to continue, 'q' to quit, 'r' to
refresh]: 
[anaconda]1:main* 2:shell  3:log  4:storage-log >Switch tab: Alt+Tab | Help: F1 

Kolejny ekran powinien wyglądać tak jak poniżej. Powinny być widoczne wszystkie utworzone wcześniej LV z rozmiarami

================================================================================
================================================================================
Assign mount points

1) /dev/mapper/rootvg-lv_home (512       6) /dev/mapper/rootvg-lv_usr (4 GiB)
   MiB)
2) /dev/mapper/rootvg-lv_opt (512 MiB)   7) /dev/mapper/rootvg-lv_var (3 GiB)
3) /dev/mapper/rootvg-lv_root (1024      8) /dev/mapper/mpatha1 (4 MiB)
   MiB)                                      prepboot
4) /dev/mapper/rootvg-lv_swap (16 GiB)    9) /dev/mapper/mpatha2 (1024 MiB)
5) /dev/mapper/rootvg-lv_tmp (512 MiB)

Choose device from above to assign mount point and set format.
Formats marked with * are new formats meaning ALL DATA on the original format
WILL BE LOST!

Please make a selection from the above ['c' to continue, 'q' to quit, 'r' to
refresh, 's' to rescan devices]: 
[anaconda]1:main* 2:shell  3:log  4:storage-log >Switch tab: Alt+Tab | Help: F1

Dla każdej pozycji wybieramy odpowiedni mountpoint oraz formatowanie.
Przykładowo, wchodzimy do pozycji dla lv_home, wybierając 1.

================================================================================
================================================================================
Configure device: /dev/mapper/rootvg-lv_home

1) Mount point
   none
2) Format
   none
3) [ ] Reformat

Choose from above to assign mount point and/or set format.

Please make a selection from the above ['c' to continue, 'q' to quit, 'r' to
refresh]: 
[anaconda]1:main* 2:shell  3:log  4:storage-log >Switch tab: Alt+Tab | Help: F1


Wpisujemy najpierw 2, aby ustawić format na XFS (domyślny i zalecany w nowych wersjach RHEL-a) a dopiero potem 1, aby wpisać odpowiedni mountpoint. Podanie opcji 1, bez wcześniejszego wybrania Formatu nie zadziała, więc należy zwrócić uwagę na kolejność.

================================================================================
================================================================================
Configure device: /dev/mapper/rootvg-lv_home

1) Mount point
   /home
2) Format
   xfs
3) [x] Reformat

Choose from above to assign mount point and/or set format.

Please make a selection from the above ['c' to continue, 'q' to quit, 'r' to
refresh]: 
[anaconda]1:main* 2:shell  3:log  4:storage-log >Switch tab: Alt+Tab | Help: F1


Wszystkie wolumeny ustawiamy analogicznie. Wyjątkiem jest tutaj partycja prepboot i swap, dla których nie podajemy punktu montowania, a jedynie odpowiedni format (odpowiednio typ prepboot i swap)

================================================================================
================================================================================
Configure device: /dev/mapper/mpatha1

1) Mount point
   PPC PReP Boot
2) Format
   prepboot
3) [ ] Reformat

Choose from above to assign mount point and/or set format.

Please make a selection from the above ['c' to continue, 'q' to quit, 'r' to
refresh]: 
[anaconda]1:main* 2:shell  3:log  4:storage-log >Switch tab: Alt+Tab | Help: F1


Po ustawieniu wszystkich pozycji, ekran powinien się prezentować w podobnie jak poniżej:

================================================================================
================================================================================
Assign mount points

1) /dev/mapper/rootvg-lv_home (512       6) /dev/mapper/rootvg-lv_usr (2 GiB)
   MiB)                                      xfs*, /usr
    xfs*, /home
2) /dev/mapper/rootvg-lv_opt (512 MiB)   7) /dev/mapper/rootvg-lv_var (3 GiB)
                                             xfs*, /var
    xfs*, /opt
3) /dev/mapper/rootvg-lv_root (1024      8) /dev/mapper/mpatha1 (4 MiB)
   MiB)                                      prepboot
    xfs*, /
4) /dev/mapper/rootvg-lv_swap (2 GiB)    9) /dev/mapper/mpatha2 (1024 MiB)
    swap*                                    xfs*, /boot
5) /dev/mapper/rootvg-lv_tmp (512 MiB)
   
    xfs*, /tmp

Choose device from above to assign mount point and set format.
Formats marked with * are new formats meaning ALL DATA on the original format
WILL BE LOST!

Please make a selection from the above ['c' to continue, 'q' to quit, 'r' to
refresh, 's' to rescan devices]: 
[anaconda]1:main* 2:shell  3:log  4:storage-log >Switch tab: Alt+Tab | Help: F1 

Po wybraniu "c", przechodzimy ponownie do ekranu głównego instalatora Anaconda.

Pozostałe opcje pozostawiam wg indywidualnych potrzeb. Mogą zostać też ustawione już po zainstalowaniu systemu, ale myślę że warto przynajmniej ustawić poniższe:

  • "Software selection" z domyślnego "Server with GUI" na coś bardziej odpowiedniego dla serwera, czyli np. Minimal Install, ponieważ ze środowiska graficznego najprawdopodobniej nie będziemy korzystać.
    ================================================================================
    ================================================================================
    Software selection
    
    Base environment
    
    1) [ ] Server with GUI                  4) [ ] Workstation
    2) [ ] Server                           5) [ ] Custom Operating System
    3) [x] Minimal Install
    
    Please make a selection from the above ['c' to continue, 'q' to quit, 'r' to
    refresh]: 
    [anaconda]1:main* 2:shell  3:log  4:storage-log >Switch tab: Alt+Tab | Help: F1
  • ustawienie hasła dla konta root/utworzenie konta użytkownika
  • ustawienie strefy czasowej
  • ustawienie hostname oraz sieci
Please make a selection from the above ['c' to continue, 'q' to quit, 'r' to
refresh]: c
================================================================================
================================================================================
Installation

1) [x] Language settings                 2) [x] Time settings
       (English (United States))                (America/New_York timezone)
3) [x] Installation source               4) [x] Software selection
       (Local media)                            (Minimal Install)
5) [x] Installation Destination          6) [x] Kdump
       (Custom partitioning selected)           (Kdump is enabled)
7) [x] Network configuration             8) [x] Root password
       (Unknown)                                (Root password is set)
9) [x] User creation
       (Administrator user will be
       created)

Please make a selection from the above ['b' to begin installation, 'q' to quit,
'r' to refresh]: 
[anaconda]1:main* 2:shell  3:log  4:storage-log >Switch tab: Alt+Tab | Help: F1

Aby rozpocząć instalację wpisujemy "b" i zatwierdzamy.

================================================================================
================================================================================
Progress

.
Setting up the installation environment
Configuring storage
Creating xfs on /dev/mapper/mpatha2
Creating xfs on /dev/mapper/rootvg-lv_var
Creating xfs on /dev/mapper/rootvg-lv_usr
Creating xfs on /dev/mapper/rootvg-lv_tmp
Creating swap on /dev/mapper/rootvg-lv_swap
Creating xfs on /dev/mapper/rootvg-lv_root
Creating xfs on /dev/mapper/rootvg-lv_opt
Creating xfs on /dev/mapper/rootvg-lv_home
...
Running pre-installation scripts
.
Running pre-installation tasks
....
Installing.
Starting package installation process
Downloading packages
Preparing transaction from installation source

[anaconda]1:main* 2:shell  3:log  4:storage-log >Switch tab: Alt+Tab | Help: F1 

Po zakończonej instalacji potwierdzamy enterem i czekamy na restart systemu

Installation complete. Press ENTER to quit:


Po zalogowaniu się do systemu, powinniśmy zobaczyć układ wolumenów nieco zbliżony do tego, który znają administratorzy AIX-a.

# df -h
Filesystem                  Size  Used Avail Use% Mounted on
devtmpfs                    4.0M     0  4.0M   0% /dev
tmpfs                       3.7G     0  3.7G   0% /dev/shm
tmpfs                       1.5G   14M  1.5G   1% /run
/dev/mapper/rootvg-lv_root  960M   62M  899M   7% /
/dev/mapper/rootvg-lv_usr   2.0G  1.1G  874M  56% /usr
/dev/mapper/rootvg-lv_var   3.0G  147M  2.8G   5% /var
/dev/mapper/rootvg-lv_home  448M   29M  420M   7% /home
/dev/mapper/rootvg-lv_opt   448M   29M  420M   7% /opt
/dev/mapper/rootvg-lv_tmp   448M   30M  419M   7% /tmp
/dev/mapper/mpatha2         960M  282M  679M  30% /boot
tmpfs                       755M     0  755M   0% /run/user/0

Zakończenie

Ręczna instalacja systemu RHEL 9 bez środowiska graficznego nie jest specjalnie wygodna, jednak warto taką operację przeprowadzić przynajmniej raz, by móc w późniejszym etapie przygotować obraz systemu dostosowany do naszych indywidualnych potrzeb.
W kolejnej części postaram się opisać czynności związane z przygotowaniem Image dla PowerVC, takie jak przygotowanie repozytoriów, instalacja Cloud-Init oraz konfiguracja pozwalająca na sprawne i uniwersalne powoływanie nowych LPAR-ów z systemem RHEL.

Jak każdy człowiek popełniam błędy - jeśli znalazłeś pomyłki w tekście lub nie zgadzasz się ze mną w jakiejś kwestii, odezwij się na Linkedin :)

0 comments
40 views

Permalink