Minggu, November 10, 2019

Online Resize Logical Volume

Logical Volume dapat di-resize secara online dengan perintah sebagai berikut. Perintah tersebut sukses dilaksanakan pada saat proses read-write terjadi pada logical volume. Hanya disarankan untuk proses resize ke ukuran yang lebih besar.

$ sudo lvextend -L 50G /dev/mapper/vg1-db1

Size of logical volume vg1/db1
changed from 20.00 GiB (5120 extents) to 50.00 GiB (12800 extents).
Logical volume db1 successfully resized.

$ sudo resize2fs /dev/mapper/vg1-db1

resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/mapper/vg1-db1 is mounted on /volume/db1;
on-line resizing required
old desc_blocks = 2, new_desc_blocks = 4

Performing an on-line resize of /dev/mapper/vg1-db1 to 13107200 (4k) blocks.
The filesystem on /dev/mapper/vg1-db1 is now 13107200 blocks long.

Selasa, Oktober 01, 2019

Rpmbuild : File not found

Command line lengkap rpmbuild , sebagai berikut:
$ rpmbuild -ba Package.spec
Content dari Package.spec yang error ..
...
%prep
%setup -q
%build
%install
touch $RPM_BUILD_ROOT/opt/package-1.0.0
%files
/opt/package-1.0.0
<EOF>
Pesan error ..
RPM build errors: File not found: /opt/package-1.0.0
Debug dengan strace ..
$ strace rpmbuild -ba Package.spec
Hasil dari strace ..
write(1, "Processing files: package-1.0.0"..., 44) = 44
lstat64(".. package-1.0.0-1.i386/opt/package-1.0.0\r"
  , 0xbf89db80) = -1 ENOENT (No such file or directory)
write(2, "error: ", 7error: )                  = 7
write(2, "File not found: rpmbuild/"..., 93 
  File not found: 
  rpmbuild/BUILDROOT/package-1.0.0-1.i386/opt/package-1.0.0
  ) = 93
Dari output strace di atas terlihat jelas terdapat karakter \r setelah alamat file. Dan berikut content dari Package.spec yang okay, yaitu tanpa line ending setelah alamat file ..
...
%prep
%setup -q
%build
%install
touch $RPM_BUILD_ROOT/opt/package-1.0.0
%files
/opt/package-1.0.0<EOF>

Jumat, September 27, 2019

Inode: No space left on device

Pesan "No space left on device" sering kali terjadi karena tidak ada ruang cukup pada partisi.

$ df -Ph /media/cm21
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/vg1-cm21  9.8G  1.6G  7.7G  17% /media/cm21

Namun kali ini, masih banyak ruang tersisa sebagaimana output perintah df di atas. Setelah cari jawaban di internet, ternyata sumber masalah-nya adalah tidak ada lagi INode yang tersedia.

$ df -Pi /media/cm21
Filesystem           Inodes  IUsed IFree IUse% Mounted on
/dev/mapper/vg1-cm21 655360 655360     0  100% /media/cm21

Disk cm21 digunakan untuk menyimpan log dan output dari background proses dan secara periodik log dan output dihapus berdasarkan prioritas background proses. Log dan output disimpan paling lama 7 hari. Log dan output disimpan dalam dua folder yang berbeda. Ketika issue terjadi folder log berisi 326.103 file dan folder output berisi 326.104 file. Disk cm21 memiliki jumlah file yang besar namun memiliki jumlah byte per file yang kecil.

Menurut Tanenbaum, Andrew S. Modern Operating Systems (3rd ed.). p. 279. sebagaimana informasi yang didapatkan dari https://en.wikipedia.org/wiki/Inode:

The inode (index node) is a data structure in a Unix-style file system that describes a file-system object such as a file or a directory. Each inode stores the attributes and disk block location(s) of the object's data.

Rekapitulasi informasi jumlah byte dan inode, sebagai berikut:

Size GB Used GB Inode Size Inode Used Inode Free
    9.8     1.6     655360     655360          0

Perintah yang dieksekusi untuk benchmark ukuran Inode Size, sebagai berikut:

$ export N=16
$ sudo lvcreate -L 10G -n cm21 vg1
$ sudo mkfs.ext4 -N $(( 2**$N-1 )) /dev/vg1/cm21
$ sudo e2fsck /dev/vg1/cm21
$ sudo mkdir -p /media/cm21
$ sudo mount /dev/vg1/cm21 /media/cm21
$ df -Ph /dev/vg1/cm21
$ df -Pi /dev/vg1/cm21
$ sudo umount /dev/vg1/cm21
$ sudo rmdir /media/cm21
$ sudo lvremove -y /dev/vg1/cm21

Hasil benchmark untuk partisi 10G, sebagai berikut:

N Size GB Used MB Inode Size
16     9.9      23     6,6560
20     9.7      23   104,9600
21     9.4      23   209,7920
22     8.9      44   419,4303
23     7.9      49   838,8608
24     5.9      53 1,677,7216

Saat ini cm21 memiliki konfigurasi Inode sejumlah 1,677,7216 dengan alokasi logical volume 10G dan disk size 5.9G. Karena berdasarkan data terakhir kebutuhan cm21 sebanyak 1.6G.

Senin, April 15, 2019

Yum Cache

Pada saat mengunakan perintah yum seringkali berjalan cukup lama. Hal ini karena by default perintah yum berusaha untuk mendapatkan informasi yang terbaru. Hal ini berbeda dengan apt yang by default menggunakan cache.

Perintah yum menggunakan cache bila dieksekusi dengan option -C. Selain itu ada beberapa perintah terkait lain, antara lain:

  1. repoquery --cache
  2. yumdownloader --cacheonly

Untuk membuat cache, gunakan yum makecache.