diff --git a/README_JP.md b/README_JP.md index 85e1ce01..8a03c310 100644 --- a/README_JP.md +++ b/README_JP.md @@ -13,17 +13,17 @@ Software is fully open source, distributed under PostgreSQL License. PG-Strom + GPU Direct Storage Quickstart ======================================== -‚±‚̃hƒLƒ…ƒƒ“ƒg‚ÍPG-Strom‚Ì“±“ü‚©‚çAGPU Direct Storage‚Ü‚Å‚ÌÝ’è‚ðà–¾‚·‚é‚à‚Ì‚Å‚·B -–{‘‚ÍLocal NVMe SSD‚ðGPU Direct StorageŒü‚¯‚É—˜—p‚·‚é—á‚ðà–¾‚µ‚Ä‚¢‚Ü‚·B +ã“ã®ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆã¯PG-Stromã®å°Žå…¥ã‹ã‚‰ã€GPU Direct Storageã¾ã§ã®è¨­å®šã‚’説明ã™ã‚‹ã‚‚ã®ã§ã™ã€‚ +本書ã¯Local NVMe SSDã‚’GPU Direct Storageå‘ã‘ã«åˆ©ç”¨ã™ã‚‹ä¾‹ã‚’説明ã—ã¦ã„ã¾ã™ã€‚ -RHEL9Œü‚¯‚É‘‚©‚ê‚Ä‚¢‚Ü‚·‚ªA[RHEL]‚ÆŒ©o‚µ‚É‘‚©‚ê‚Ä‚¢‚é•”•ªˆÈŠO‚ÍRocky Linux‚È‚Ç‚ÌRHELƒNƒ[ƒ“OS‚ÆŠT‚Ë‹¤’Ê‚È‚Ì‚ÅŽQl‚É‚È‚é‚ÆŽv‚¢‚Ü‚·B +RHEL9å‘ã‘ã«æ›¸ã‹ã‚Œã¦ã„ã¾ã™ãŒã€[RHEL]ã¨è¦‹å‡ºã—ã«æ›¸ã‹ã‚Œã¦ã„る部分以外ã¯Rocky Linuxãªã©ã®RHELクローンOSã¨æ¦‚ã­å…±é€šãªã®ã§å‚考ã«ãªã‚‹ã¨æ€ã„ã¾ã™ã€‚ -‚»‚ê‚Å‚Í‚±‚̃KƒCƒh‚É]‚Á‚Ċ‹«\’z‚µ‚ÄAPG-Strom‚Ì¢ŠE‚É‘«‚𓥂ݓü‚ê‚Ä‚Ý‚Ä‚­‚¾‚³‚¢B +ãã‚Œã§ã¯ã“ã®ã‚¬ã‚¤ãƒ‰ã«å¾“ã£ã¦ç’°å¢ƒæ§‹ç¯‰ã—ã¦ã€PG-Stromã®ä¸–ç•Œã«è¶³ã‚’è¸ã¿å…¥ã‚Œã¦ã¿ã¦ãã ã•ã„。 -## [RHEL]ƒo[ƒWƒ‡ƒ“ŒÅ’è +## [RHEL]ãƒãƒ¼ã‚¸ãƒ§ãƒ³å›ºå®š -RHEL‚ł̓ŠƒŠ[ƒXƒo[ƒWƒ‡ƒ“‚ð•ÏX‚Å‚«‚Ü‚·BƒCƒ“ƒXƒg[ƒ‹‚·‚éCUDA‚ɇ‚킹‚ÄAƒŠƒŠ[ƒXƒo[ƒWƒ‡ƒ“‚ðŒÅ’艻‚·‚é‚Æ—Ç‚¢‚Å‚µ‚傤BCUDA‚ÆMOFEDALinux‚̃o[ƒWƒ‡ƒ“‚ð“KØ‚©‚ÂŽ©—R‚É‘I‘ð‚Å‚«‚éꇂ͂±‚ÌÝ’è‚Í•s—v‚Å‚·B +RHELã§ã¯ãƒªãƒªãƒ¼ã‚¹ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã‚’変更ã§ãã¾ã™ã€‚インストールã™ã‚‹CUDAã«åˆã‚ã›ã¦ã€ãƒªãƒªãƒ¼ã‚¹ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã‚’固定化ã™ã‚‹ã¨è‰¯ã„ã§ã—ょã†ã€‚CUDAã¨MOFEDã€Linuxã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã‚’é©åˆ‡ã‹ã¤è‡ªç”±ã«é¸æŠžã§ãã‚‹å ´åˆã¯ã“ã®è¨­å®šã¯ä¸è¦ã§ã™ã€‚ (rhel9) @@ -31,15 +31,15 @@ RHEL $ sudo subscription-manager release --set=9.4 ``` -## ƒ\ƒtƒgƒEƒFƒAƒAƒbƒvƒf[ƒg‚ÌŽÀŽ{ -ƒ\ƒtƒgƒEƒFƒAƒAƒbƒvƒf[ƒg‚ðŽÀs‚µ‚Ü‚·B +## ソフトウェアアップデートã®å®Ÿæ–½ +ソフトウェアアップデートを実行ã—ã¾ã™ã€‚ ``` $ sudo dnf update -y ``` -## [RHEL]EUSƒŠƒ|ƒWƒgƒŠ[‚Ì—LŒø‰» -RHEL‚ł̓VƒXƒeƒ€‚ւ̉„’·XVƒTƒ|[ƒg (EUS)‚ª—˜—p‚Å‚«‚Ü‚·BEUS‚Í’Êí‚̃Tƒ|[ƒgŠúŠÔ‚æ‚è’·‚¢ŠúŠÔAƒ}ƒCƒi[ƒo[ƒWƒ‡ƒ“‚̃ƒ“ƒeƒiƒ“ƒXƒAƒbƒvƒf[ƒg‚ðŽó‚¯‚ç‚ê‚Ü‚·B’·ŠúŠÔ‚̈À’肵‚½—˜—p‚ð•K—v‚Æ‚·‚éꇂ͓K—p‚µ‚Ä‚­‚¾‚³‚¢BCUDA‚ÆMOFEDALinux‚̃o[ƒWƒ‡ƒ“‚ð“KØ‚©‚ÂŽ©—R‚É‘I‘ð‚Å‚«‚éꇂ͂±‚ÌÝ’è‚Í•s—v‚Å‚·B +## [RHEL]EUSリãƒã‚¸ãƒˆãƒªãƒ¼ã®æœ‰åŠ¹åŒ– +RHELã§ã¯ã‚·ã‚¹ãƒ†ãƒ ã¸ã®å»¶é•·æ›´æ–°ã‚µãƒãƒ¼ãƒˆ (EUS)ãŒåˆ©ç”¨ã§ãã¾ã™ã€‚EUSã¯é€šå¸¸ã®ã‚µãƒãƒ¼ãƒˆæœŸé–“より長ã„期間ã€ãƒžã‚¤ãƒŠãƒ¼ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã®ãƒ¡ãƒ³ãƒ†ãƒŠãƒ³ã‚¹ã‚¢ãƒƒãƒ—デートをå—ã‘られã¾ã™ã€‚長期間ã®å®‰å®šã—ãŸåˆ©ç”¨ã‚’å¿…è¦ã¨ã™ã‚‹å ´åˆã¯é©ç”¨ã—ã¦ãã ã•ã„。CUDAã¨MOFEDã€Linuxã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã‚’é©åˆ‡ã‹ã¤è‡ªç”±ã«é¸æŠžã§ãã‚‹å ´åˆã¯ã“ã®è¨­å®šã¯ä¸è¦ã§ã™ã€‚ (rhel9) @@ -47,10 +47,10 @@ RHEL $ sudo subscription-manager repos --enable rhel-9-for-x86_64-appstream-eus-rpms --enable rhel-9-for-x86_64-baseos-eus-rpms ``` -EPEL‚ÆCodeReady Linux BuilderiPowerToolsj‚Ì—LŒø‰» -EPEL‚Ì—˜—p‚É‚ÍŠJ”­‚ÅŽg‚¤ƒpƒbƒP[ƒWƒZƒbƒgƒŠƒ|ƒWƒgƒŠ[iCodeReady Linux Builderj‚Ì—LŒø‰»‚ª•K—v‚Å‚·BƒfƒBƒXƒgƒŠƒrƒ…[ƒVƒ‡ƒ“‚É‚æ‚Á‚ÄAƒŠƒ|ƒWƒgƒŠ[‚Ì–¼Ì‚ªˆÙ‚Ȃ邱‚Æ‚ª‚ ‚è‚Ü‚·B +## EPELã¨CodeReady Linux Builder(PowerTools)ã®æœ‰åŠ¹åŒ– +EPELã®åˆ©ç”¨ã«ã¯é–‹ç™ºã§ä½¿ã†ãƒ‘ッケージセットリãƒã‚¸ãƒˆãƒªãƒ¼ï¼ˆCodeReady Linux Builder)ã®æœ‰åŠ¹åŒ–ãŒå¿…è¦ã§ã™ã€‚ディストリビューションã«ã‚ˆã£ã¦ã€ãƒªãƒã‚¸ãƒˆãƒªãƒ¼ã®å称ãŒç•°ãªã‚‹ã“ã¨ãŒã‚ã‚Šã¾ã™ã€‚ -Úׂ̓AƒbƒvƒXƒgƒŠ[ƒ€‚̃hƒLƒ…ƒƒ“ƒg‚ðŠm”F‚µ‚Ä‚­‚¾‚³‚¢B +詳細ã¯ã‚¢ãƒƒãƒ—ストリームã®ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆã‚’確èªã—ã¦ãã ã•ã„。 - https://docs.fedoraproject.org/en-US/epel/getting-started/ @@ -60,14 +60,14 @@ EPEL $ sudo subscription-manager repos --enable codeready-builder-for-rhel-9-$(arch)-rpms && sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm ``` -## ŠJ”­ƒc[ƒ‹‚Ȃǂ̃Cƒ“ƒXƒg[ƒ‹ +## 開発ツールãªã©ã®ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ« ``` $ sudo dnf install wget git-core -y $ sudo dnf groupinstall 'Development Tools' -y ``` -## IOMMU‚Ì–³Œø‰» +## IOMMUã®ç„¡åŠ¹åŒ– (rhel9) @@ -79,34 +79,34 @@ $ sudo vi /etc/default/grub $ sudo grub2-mkconfig -o /boot/grub2/grub.cfg ``` -## Nouveauƒhƒ‰ƒCƒo[‚Ì–³Œø‰» +## Nouveauドライãƒãƒ¼ã®ç„¡åŠ¹åŒ– ``` -# cat > /etc/modprobe.d/disable-nouveau.conf < /etc/modprobe.d/disable-nouveau.conf < /etc/modules-load.d/nvme.conf ``` -ƒfƒoƒCƒX‚Ì”‚ðŠm”F‚µ‚Ü‚·B +デãƒã‚¤ã‚¹ã®æ•°ã‚’確èªã—ã¾ã™ã€‚ ``` -$ ls /dev |grep nvme +# ls /dev |grep nvme ``` -ƒfƒoƒCƒX‚Ì”‚ɇ‚킹‚ÄAƒ\ƒtƒgƒEƒFƒARAID‚ÌÝ’è(-n‚ÅNVMe SSDƒfƒoƒCƒX”‚ðŽw’è)‚ðs‚¢‚Ü‚·B +デãƒã‚¤ã‚¹ã®æ•°ã«åˆã‚ã›ã¦ã€ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢RAIDã®è¨­å®š(-nã§NVMe SSDデãƒã‚¤ã‚¹æ•°ã‚’指定)ã‚’è¡Œã„ã¾ã™ã€‚ ``` # mdadm -C /dev/md0 -c 128 -l 0 -n 4 /dev/nvme0n1 /dev/nvme1n1 /dev/nvme2n1 /dev/nvme3n1 # mdadm --detail --scan > /etc/mdadm.conf ``` -RAID ƒ{ƒŠƒ…[ƒ€‚Ì udev ƒ‹[ƒ‹‚Ì`--no-devices`‚ªŽw’肳‚ꂽs‚Ì“à—e‚ðC³‚µ‚Ü‚·B +RAID ボリューム㮠udev ルールã®`--no-devices`ãŒæŒ‡å®šã•ã‚ŒãŸè¡Œã®å†…容を修正ã—ã¾ã™ã€‚ ``` # vi /lib/udev/rules.d/63-md-raid-arrays.rules @@ -188,7 +188,7 @@ RAID IMPORT{program}="/usr/sbin/mdadm --detail --export $devnode" ``` -partedƒRƒ}ƒ“ƒh‚ðŽg‚Á‚ÄAƒp[ƒeƒBƒVƒ‡ƒ“쬂ðs‚¢‚Ü‚·Bƒtƒ@ƒCƒ‹ƒVƒXƒeƒ€‚Íext4‚ðŽw’肵‚Ü‚·B +partedコマンドを使ã£ã¦ã€ãƒ‘ーティション作æˆã‚’è¡Œã„ã¾ã™ã€‚ファイルシステムã¯ext4を指定ã—ã¾ã™ã€‚ ``` # parted /dev/md0 @@ -217,13 +217,13 @@ Number Start End Size File system Name Flags Information: You may need to update /etc/fstab. ``` -ƒtƒ@ƒCƒ‹ƒVƒXƒeƒ€‚ð쬂µ‚Ü‚·B +ファイルシステムを作æˆã—ã¾ã™ã€‚ ``` # mkfs.ext4 /dev/md0p1 ``` -ƒ}ƒEƒ“ƒg‚µ‚Ü‚·BƒXƒgƒŒ[ƒW‚ð‰i‘±‰»‚·‚邽‚ß‚ÉA`/etc/fstab`‚É‹Lq‚µ‚Ü‚·B +マウントã—ã¾ã™ã€‚ストレージを永続化ã™ã‚‹ãŸã‚ã«ã€`/etc/fstab`ã«è¨˜è¿°ã—ã¾ã™ã€‚ ``` # mkdir -p /opt/nvme @@ -233,19 +233,19 @@ Information: You may need to update /etc/fstab. /dev/md0p1 /opt/nvme ext4 data=ordered 0 0 ``` -## CUDA‚̃Cƒ“ƒXƒg[ƒ‹ -PG-Strom 5.x‚ÍCUDA 12.2ˆÈ~‚ªŒ»Žž“_‚ÌÅ’á—vŒ‚É‚È‚è‚Ü‚·B“KØ‚ÈOS‚âƒJ[ƒlƒ‹ƒo[ƒWƒ‡ƒ“‚ð—pˆÓ‚µ‚½ã‚őΉž‚·‚éCUDA‚ðƒCƒ“ƒXƒg[ƒ‹‚µ‚Ü‚·B +## CUDAã®ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ« +PG-Strom 5.xã¯CUDA 12.2以é™ãŒç¾æ™‚点ã®æœ€ä½Žè¦ä»¶ã«ãªã‚Šã¾ã™ã€‚é©åˆ‡ãªOSやカーãƒãƒ«ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã‚’用æ„ã—ãŸä¸Šã§å¯¾å¿œã™ã‚‹CUDAをインストールã—ã¾ã™ã€‚ - https://developer.nvidia.com/cuda-toolkit-archive -Ž–‘O‚ÉdkmsƒpƒbƒP[ƒW‚ð“ü‚ê‚Ä‚¨‚­‚Æ•Ö—˜‚Å‚·B‚±‚̃pƒbƒP[ƒW‚ÍEPELƒŠƒ|ƒWƒgƒŠ[‚É‚ ‚è‚Ü‚·B +事å‰ã«dkmsパッケージを入れã¦ãŠãã¨ä¾¿åˆ©ã§ã™ã€‚ã“ã®ãƒ‘ッケージã¯EPELリãƒã‚¸ãƒˆãƒªãƒ¼ã«ã‚ã‚Šã¾ã™ã€‚ ``` $ sudo dnf install -y dkms ``` -ƒŠƒ|ƒWƒgƒŠ[‚ð’ljÁ‚µ‚Ü‚·B +リãƒã‚¸ãƒˆãƒªãƒ¼ã‚’追加ã—ã¾ã™ã€‚ (rhel9) @@ -253,29 +253,29 @@ $ sudo dnf install -y dkms $ sudo dnf config-manager --add-repo https://developer.download.nvidia.com/compute/cuda/repos/rhel9/x86_64/cuda-rhel9.repo ``` -ƒpƒbƒP[ƒW‚ÅCUDA‚ðƒCƒ“ƒXƒg[ƒ‹‚·‚é‚Æ‚«‚ÍAƒo[ƒWƒ‡ƒ“‚ðŽw’肵‚Ü‚·B +パッケージã§CUDAをインストールã™ã‚‹ã¨ãã¯ã€ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã‚’指定ã—ã¾ã™ã€‚ ``` -sudo dnf install -y cuda-toolkit-12-3 +$ sudo dnf install -y cuda-toolkit-12-3 ``` -GPUƒhƒ‰ƒCƒo[‚ðƒCƒ“ƒXƒg[ƒ‹‚µ‚Ü‚·BCUDAƒo[ƒWƒ‡ƒ“‚É‚æ‚Á‚ăŒƒKƒV[ƒhƒ‰ƒCƒo[‚ÆOpenƒhƒ‰ƒCƒo[‚ª‘¶Ý‚µ‚Ü‚·‚ªACUDA 12.3ˆÈ~‚ÍOpenƒhƒ‰ƒCƒo[‚ªƒCƒ“ƒXƒg[ƒ‹‚³‚ê‚Ä‚¢‚È‚¢‚ÆGDS‚ª—˜—p‚Å‚«‚Ü‚¹‚ñB‚Ü‚½AOpenƒhƒ‰ƒCƒo[‚ÍTuring¢‘ãˆÈ~‚ÌGPU‚É‚µ‚©‘Ήž‚µ‚Ä‚¢‚Ü‚¹‚ñ‚Ì‚ÅA‘Ήž‚·‚éGPU‚ð—pˆÓ‚·‚é‚©ACUDA 12.2GA‚à‚µ‚­‚Í12.2 Update1‚܂ł̃o[ƒWƒ‡ƒ“‚ª—˜—p‰Â”\‚ÈGPU‚Ɗ‹«‚ð—pˆÓ‚µ‚Ä‚­‚¾‚³‚¢B +GPUドライãƒãƒ¼ã‚’インストールã—ã¾ã™ã€‚CUDAãƒãƒ¼ã‚¸ãƒ§ãƒ³ã«ã‚ˆã£ã¦ãƒ¬ã‚¬ã‚·ãƒ¼ãƒ‰ãƒ©ã‚¤ãƒãƒ¼ã¨Openドライãƒãƒ¼ãŒå­˜åœ¨ã—ã¾ã™ãŒã€CUDA 12.3以é™ã¯Openドライãƒãƒ¼ãŒã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã•ã‚Œã¦ã„ãªã„ã¨GDSãŒåˆ©ç”¨ã§ãã¾ã›ã‚“。ã¾ãŸã€Openドライãƒãƒ¼ã¯Turing世代以é™ã®GPUã«ã—ã‹å¯¾å¿œã—ã¦ã„ã¾ã›ã‚“ã®ã§ã€å¯¾å¿œã™ã‚‹GPUを用æ„ã™ã‚‹ã‹ã€CUDA 12.2GAã‚‚ã—ãã¯12.2 Update1ã¾ã§ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ãŒåˆ©ç”¨å¯èƒ½ãªGPUã¨ç’°å¢ƒã‚’用æ„ã—ã¦ãã ã•ã„。 ``` -sudo dnf module install -y nvidia-driver:open-dkms +$ sudo dnf module install -y nvidia-driver:open-dkms ``` Note: -CUDA 12.2 Update2ˆÈ~‚ÍGDS‚ÌŽd—l•ÏX‚ÅGPU‚ÆGPUƒhƒ‰ƒCƒo[‚Ì‘g‚݇‚킹‚ªd—v‚É‚È‚éBTuring–¢–žiP,Vj‚Ì¢‘ã‚Å‚Í12.2 Update1‚ð—˜—p‚·‚邱‚ÆBTuringˆÈ~‚Å‚ÍOpen GPUƒhƒ‰ƒCƒo[‚ª•K—vB +CUDA 12.2 Update2以é™ã¯GDSã®ä»•æ§˜å¤‰æ›´ã§GPUã¨GPUドライãƒãƒ¼ã®çµ„ã¿åˆã‚ã›ãŒé‡è¦ã«ãªã‚‹ã€‚Turing未満(P,V)ã®ä¸–代ã§ã¯12.2 Update1を利用ã™ã‚‹ã“ã¨ã€‚Turing以é™ã§ã¯Open GPUドライãƒãƒ¼ãŒå¿…è¦ã€‚ -MOFED‚ð“ü‚ꂽ‚ ‚ÆACUDA‚Æ“¯‚¶ƒo[ƒWƒ‡ƒ“‚Ìnvidia-gdsƒpƒbƒP[ƒW‚ðƒCƒ“ƒXƒg[ƒ‹‚µ‚Ü‚·B +MOFEDを入れãŸã‚ã¨ã€CUDAã¨åŒã˜ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã®nvidia-gdsパッケージをインストールã—ã¾ã™ã€‚ ``` -sudo dnf install -y nvidia-gds-12-3 +$ sudo dnf install -y nvidia-gds-12-3 ``` -## PostgreSQL‚̃Cƒ“ƒXƒg[ƒ‹ -RHEL‚¨‚æ‚ÑRHELƒNƒ[ƒ“OS‚ÍPostgreSQLƒpƒbƒP[ƒW‚ð’ñ‹Ÿ‚µ‚Ä‚¢‚Ü‚·‚ªA’ñ‹Ÿ‚³‚ê‚éƒpƒbƒP[ƒW‚âƒrƒ‹ƒhƒ|ƒŠƒV[‚ªˆÙ‚Ȃ邽‚ß‚ÉAŽáŠ±“®ì‚ɈႢ‚ª”­¶‚·‚邱‚Æ‚ª‚ ‚è‚Ü‚·B–{‘‚Å‚ÍPostgreSQLƒRƒ~ƒ…ƒjƒeƒB‚ª’ñ‹Ÿ‚·‚éƒpƒbƒP[ƒW‚ð—˜—p‚·‚é‘O’ñ‚ʼnðà‚µ‚Ä‚¢‚Ü‚·B +## PostgreSQLã®ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ« +RHELãŠã‚ˆã³RHELクローンOSã¯PostgreSQLパッケージをæä¾›ã—ã¦ã„ã¾ã™ãŒã€æä¾›ã•ã‚Œã‚‹ãƒ‘ッケージやビルドãƒãƒªã‚·ãƒ¼ãŒç•°ãªã‚‹ãŸã‚ã«ã€è‹¥å¹²å‹•ä½œã«é•ã„ãŒç™ºç”Ÿã™ã‚‹ã“ã¨ãŒã‚ã‚Šã¾ã™ã€‚本書ã§ã¯PostgreSQLコミュニティãŒæä¾›ã™ã‚‹ãƒ‘ッケージを利用ã™ã‚‹å‰æã§è§£èª¬ã—ã¦ã„ã¾ã™ã€‚ - https://www.postgresql.org/download/ @@ -285,26 +285,26 @@ RHEL $ sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm ``` -PostgreSQLƒpƒbƒP[ƒW‚̃Cƒ“ƒXƒg[ƒ‹‚ð‚µ‚Ü‚·B–{‘‚ð‘‚¢‚½Žž“_‚Å‚ÍPostgreSQL 15ˆÊˆÈ~‚̃o[ƒWƒ‡ƒ“‚ɑΉž‚µ‚Ä‚¢‚Ü‚·BPostgreSQL 16‚ðƒCƒ“ƒXƒg[ƒ‹‚·‚éꇂ͎Ÿ‚̂悤‚ÉŽÀs‚µ‚Ü‚·B +PostgreSQLパッケージã®ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã‚’ã—ã¾ã™ã€‚本書を書ã„ãŸæ™‚点ã§ã¯PostgreSQL 15以é™ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã«å¯¾å¿œã—ã¦ã„ã¾ã™ã€‚PostgreSQL 16をインストールã™ã‚‹å ´åˆã¯æ¬¡ã®ã‚ˆã†ã«å®Ÿè¡Œã—ã¾ã™ã€‚ ``` $ sudo dnf -qy module disable postgresql && sudo dnf install -y postgresql16-server postgresql16-devel ``` -PostgreSQL‚̉Šú‰»‚ƃT[ƒrƒX‚Ì‹N“®‚ðݒ肵‚Ü‚·B +PostgreSQLã®åˆæœŸåŒ–ã¨ã‚µãƒ¼ãƒ“スã®èµ·å‹•ã‚’設定ã—ã¾ã™ã€‚ ``` $ sudo /usr/pgsql-16/bin/postgresql-16-setup initdb && sudo systemctl enable --now postgresql-16 ``` -SELinuxŽü‚è‚ðŽÀs‚µ‚Ü‚·BŽÀÛ—˜—p‚·‚éƒpƒX‚É’u‚«Š·‚¦‚ÄŽÀs‚µ‚Ä‚­‚¾‚³‚¢B +SELinux周りを実行ã—ã¾ã™ã€‚実際利用ã™ã‚‹ãƒ‘スã«ç½®ãæ›ãˆã¦å®Ÿè¡Œã—ã¦ãã ã•ã„。 ``` $ sudo chown postgres:postgres -R /opt/nvme && sudo chcon -R system_u:object_r:postgresql_db_t:s0 /opt/nvme/ ``` -## HereroDBƒŠƒ|ƒWƒgƒŠ[‚̒ljÁ -HeteroDB Software Distribution Center‚©‚烊ƒ|ƒWƒgƒŠ[RPMƒpƒbƒP[ƒW‚ðƒ_ƒEƒ“ƒ[ƒh‚µ‚ÄA`heterodb-extra`ƒpƒbƒP[ƒW‚ðƒCƒ“ƒXƒg[ƒ‹‚µ‚Ü‚·B +## HereroDBリãƒã‚¸ãƒˆãƒªãƒ¼ã®è¿½åŠ  +HeteroDB Software Distribution Centerã‹ã‚‰ãƒªãƒã‚¸ãƒˆãƒªãƒ¼RPMパッケージをダウンロードã—ã¦ã€`heterodb-extra`パッケージをインストールã—ã¾ã™ã€‚ - [HeteroDB Software Distribution Center](https://heterodb.github.io/swdc/) @@ -315,7 +315,7 @@ $ sudo dnf install -y https://heterodb.github.io/swdc/yum/rhel9-noarch/heterodb- $ sudo dnf install -y heterodb-extra ``` -“üŽè‚µ‚½ƒ‰ƒCƒZƒ“ƒX‚ðŠ„‚è“–‚Ä‚Ü‚·B +入手ã—ãŸãƒ©ã‚¤ã‚»ãƒ³ã‚¹ã‚’割り当ã¦ã¾ã™ã€‚ ``` $ sudo sh -c "cat heterodb.license > /etc/heterodb.license" @@ -323,18 +323,18 @@ $ sudo systemctl restart postgresql-16 ``` -## PG-Strom ‚̃Cƒ“ƒXƒg[ƒ‹ -‚±‚±‚Ü‚Å€”õ‚ª‚Å‚«‚½‚çA[ƒCƒ“ƒXƒg[ƒ‹ƒKƒCƒh](https://heterodb.github.io/pg-strom/ja/install/)‚É]‚Á‚ÄAPG-Strom‚̃Cƒ“ƒXƒg[ƒ‹AÝ’è‚ðs‚¢‚Ü‚·B +## PG-Strom ã®ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ« +ã“ã“ã¾ã§æº–å‚™ãŒã§ããŸã‚‰ã€[インストールガイド](https://heterodb.github.io/pg-strom/ja/install/)ã«å¾“ã£ã¦ã€PG-Stromã®ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã€è¨­å®šã‚’è¡Œã„ã¾ã™ã€‚ -## ‚»‚Ì‘¼‚ÌÝ’è -•MŽÒ‚ª‚æ‚­s‚¤Ý’è‚ð‚Ü‚Æ‚ß‚Ü‚µ‚½B•K—v‚ɉž‚¶‚Äݒ肵‚Ü‚·B +## ãã®ä»–ã®è¨­å®š +筆者ãŒã‚ˆãè¡Œã†è¨­å®šã‚’ã¾ã¨ã‚ã¾ã—ãŸã€‚å¿…è¦ã«å¿œã˜ã¦è¨­å®šã—ã¾ã™ã€‚ -### PostgreSQL + PG-StromŠÂ‹«‚ðŠO•”ƒNƒ‰ƒCƒAƒ“ƒg‚©‚ç—˜—p‚·‚é -ŠO•”ƒNƒ‰ƒCƒAƒ“ƒg‚©‚ç—˜—p‚·‚éPG-StromŠÂ‹«‚ÖƒAƒNƒZƒX‚µ‚½‚¢ê‡‚ÍAPostgreSQL‚ÌÝ’è‚Ì•ÏX‚ª•K—v‚Å‚·B -ŽŸ‚̂悤‚È•û–@‚őΉž‚µ‚Ä‚­‚¾‚³‚¢B +### PostgreSQL + PG-Strom環境を外部クライアントã‹ã‚‰åˆ©ç”¨ã™ã‚‹ +外部クライアントã‹ã‚‰åˆ©ç”¨ã™ã‚‹PG-Strom環境ã¸ã‚¢ã‚¯ã‚»ã‚¹ã—ãŸã„å ´åˆã¯ã€PostgreSQLã®è¨­å®šã®å¤‰æ›´ãŒå¿…è¦ã§ã™ã€‚ +次ã®ã‚ˆã†ãªæ–¹æ³•ã§å¯¾å¿œã—ã¦ãã ã•ã„。 -ƒŠƒbƒXƒ“ƒAƒhƒŒƒX‚ÌÝ’è‚ð•ÏX‚µ‚Ü‚·B +リッスンアドレスã®è¨­å®šã‚’変更ã—ã¾ã™ã€‚ ``` sudo su - postgres @@ -343,28 +343,28 @@ vi /var/lib/pgsql/16/data/postgresql.conf listen_addresses = '*' ``` -ƒŠƒ‚[ƒgƒAƒNƒZƒX‚ð‹–‰Â‚·‚郆[ƒU[‚ð쬂µ‚Ü‚·Bƒ†[ƒU[‚ɂ̓AƒNƒZƒX‚É“K؂ȃ[ƒ‹‚ðݒ肵‚Ü‚·BˆÈ‰º‚Í‚©‚È‚èŠÉ‚¢Ý’è‚Å‚·BÝ’è“à—e‚ÌÚׂɂ‚¢‚Ä‚ÍÝ’èƒtƒ@ƒCƒ‹‚̃Rƒƒ“ƒg‚ðŠm”F‚µ‚Ä‚­‚¾‚³‚¢B +リモートアクセスを許å¯ã™ã‚‹ãƒ¦ãƒ¼ã‚¶ãƒ¼ã‚’作æˆã—ã¾ã™ã€‚ユーザーã«ã¯ã‚¢ã‚¯ã‚»ã‚¹ã«é©åˆ‡ãªãƒ­ãƒ¼ãƒ«ã‚’設定ã—ã¾ã™ã€‚以下ã¯ã‹ãªã‚Šç·©ã„設定ã§ã™ã€‚設定内容ã®è©³ç´°ã«ã¤ã„ã¦ã¯è¨­å®šãƒ•ã‚¡ã‚¤ãƒ«ã®ã‚³ãƒ¡ãƒ³ãƒˆã‚’確èªã—ã¦ãã ã•ã„。 ``` $ createuser -d -r -s -P pguser01 -Enter password for new role: <ƒpƒXƒ[ƒh‚ðÝ’è> -vi /var/lib/pgsql/16/data/pg_hba.conf -i’Ç‹Lj +Enter password for new role: <パスワードを設定> +$vi /var/lib/pgsql/16/data/pg_hba.conf +(追記) host all pguser01 127.0.0.1/32 scram-sha-256 host all pguser01 172.16.0.0/16 scram-sha-256 host all pguser01 172.17.0.0/16 scram-sha-256 $ exit ``` -ƒT[ƒrƒX‚ðÄ‹N“®‚µ‚Ü‚·B +サービスをå†èµ·å‹•ã—ã¾ã™ã€‚ ``` $ sudo systemctl restart postgresql-16.service $ journalctl -u postgresql-16 ``` -ƒtƒ@ƒCƒAƒEƒH[ƒ‹ƒ|[ƒgŠJ•ú -ƒŠƒ‚[ƒgƒAƒNƒZƒX‚ð‹–‰Â‚·‚é‚ɂ̓|[ƒgŠJ•ú‚ª•K—v‚Å‚·BFirewalld‚ª—˜—p‚³‚ê‚Ä‚¢‚éŠÂ‹«‚ł͈ȉº‚Ì‚¢‚¸‚ê‚©‚Ì•û–@‚Å•K—v‚ȃ|[ƒg‚ð‰ð•ú‚µ‚Ü‚·Bݒ肵‚Ä‚¢‚éƒ|[ƒg‚ª5432‚Å‚Í‚È‚¢ê‡‚ÍA“K؂ȃ|[ƒg‚ðŽw’肵‚Ä‚­‚¾‚³‚¢B +ファイアウォールãƒãƒ¼ãƒˆé–‹æ”¾ +リモートアクセスを許å¯ã™ã‚‹ã«ã¯ãƒãƒ¼ãƒˆé–‹æ”¾ãŒå¿…è¦ã§ã™ã€‚FirewalldãŒåˆ©ç”¨ã•ã‚Œã¦ã„る環境ã§ã¯ä»¥ä¸‹ã®ã„ãšã‚Œã‹ã®æ–¹æ³•ã§å¿…è¦ãªãƒãƒ¼ãƒˆã‚’解放ã—ã¾ã™ã€‚設定ã—ã¦ã„ã‚‹ãƒãƒ¼ãƒˆãŒ5432ã§ã¯ãªã„å ´åˆã¯ã€é©åˆ‡ãªãƒãƒ¼ãƒˆã‚’指定ã—ã¦ãã ã•ã„。 ``` @@ -380,16 +380,16 @@ $ sudo firewall-cmd --reload ``` -### GDS—̈æ‚Ƀf[ƒ^ƒx[ƒX‚ð쬂·‚é -PG-Strom‚É‚Æ‚Á‚ÄAGPUDirect Storage‚Íd—v‚ȃRƒ“ƒ|[ƒlƒ“ƒg‚̈ê‚‚ł·B -GPUDirect Storage‚̊‹«‚ª®‚Á‚Ä‚àAPostgreSQL‚̃f[ƒ^‚ªGPUDirect Storage‚ª—LŒø‚ȃXƒgƒŒ[ƒW‚É‚È‚¢‚ÆA\•ª‚È«”\‚ðo‚·‚±‚Æ‚ª‚Å‚«‚Ü‚¹‚ñBŽŸ‚̂悤‚È•û–@‚Ńf[ƒ^ƒx[ƒX‚ƃe[ƒuƒ‹‚ð쬂µ‚½ã‚ÅAƒf[ƒ^‚ðŽæ‚舵‚Á‚Ä‚­‚¾‚³‚¢B +### GDS領域ã«ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã‚’作æˆã™ã‚‹ +PG-Stromã«ã¨ã£ã¦ã€GPUDirect Storageã¯é‡è¦ãªã‚³ãƒ³ãƒãƒ¼ãƒãƒ³ãƒˆã®ä¸€ã¤ã§ã™ã€‚ +GPUDirect Storageã®ç’°å¢ƒãŒæ•´ã£ã¦ã‚‚ã€PostgreSQLã®ãƒ‡ãƒ¼ã‚¿ãŒGPUDirect StorageãŒæœ‰åŠ¹ãªã‚¹ãƒˆãƒ¬ãƒ¼ã‚¸ã«ãªã„ã¨ã€å分ãªæ€§èƒ½ã‚’出ã™ã“ã¨ãŒã§ãã¾ã›ã‚“。次ã®ã‚ˆã†ãªæ–¹æ³•ã§ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã¨ãƒ†ãƒ¼ãƒ–ルを作æˆã—ãŸä¸Šã§ã€ãƒ‡ãƒ¼ã‚¿ã‚’å–り扱ã£ã¦ãã ã•ã„。 ``` CREATE TABLESPACE nvme LOCATION '/opt/nvme'; CREATE DATABASE testdb TABLESPACE nvme; ``` -ƒe[ƒuƒ‹‹óŠÔ‚ɂ‚¢‚Ä‚ÌÚׂÍAƒAƒbƒvƒXƒgƒŠ[ƒ€‚̃hƒLƒ…ƒƒ“ƒg‚ðŠm”F‚µ‚Ä‚­‚¾‚³‚¢B +テーブル空間ã«ã¤ã„ã¦ã®è©³ç´°ã¯ã€ã‚¢ãƒƒãƒ—ストリームã®ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆã‚’確èªã—ã¦ãã ã•ã„。 - https://www.postgresql.jp/document/16/html/manage-ag-tablespaces.html