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 :)