[ ¸®´ª½º - Storage ] ´ë·®ÀÇ ÆÄÀÏ(inode full ¸¸µé±â)À» »ý¼ºÇÏ´Â Åø ¹®ÀÇ

   Á¶È¸ 1464   Ãßõ 0    

리눅스에서 inode full 이 발생할 경우에 대비하여, 대량의 inode(작은 크기)을 만드는 시험을 하고자 합니다.

큰 사이즈 파일을 만드는 dd/fio/fallocate등은 검색이 되나 이러한 목적에 대한 툴 아시면 소개 부탁 드려 봅니다.


감사합니다.



ªÀº±Û Àϼö·Ï ½ÅÁßÇÏ°Ô.
±×³É touch ¸í·É¾î·Î ÇϽøé ÆÄÀÏ °¹¼ö¸¦ ´Ã¸®´Âµ¥ À¯¿ëÇÒ°Í °°³×¿ä.
ÆÄÀÏ»çÀÌÁ ÃÖ¼ÒÇؼ­ ÆÄÀÏ°³¼ö¸¦ ´Ã·Á¾ß ÆÄÀϽýºÅÛÀÌ Ã³¸®ÇÒ¼ö ÀÖ´Â ÆÄÀÏ°³¼ö ´É·ÂÀ» »ìÆ캼 ¼ö ÀÖ½À´Ï´Ù.

ex) vi inode_full_test.sh
--------------------------------
#!/bin/bash
for i in {1..100000000}; do
  touch "touch_me_file_$i"
  echo "counter : $i"
done
--------------------------------
º¸Åë ÀÌ·± Å×½ºÆ®´Â python scrpt·Î ÇÕ´Ï´Ù¸¸... Á» ´À¸®±º¿ä. 10ÃÊ¿¡ 60k°³ Á¤µµ ¹Û¿¡ ¸ø ¸¸µå³×¿ä.
¶óÁ¸®ÆÄÀÌ4·Î SD Ä«µå À§¿¡¼­ ÇÑ Å×½ºÆ®¶ó¼­ ±×·² ¼ö ÀÖÁö¸¸... »ý°¢º¸´Ù ´õ ´À¸®±º¿ä.

¸Ç ¾Æ·¡ ÂÊ¿¡ ½ºÅ©¸³Æ®°¡ ÀÖ½À´Ï´Ù.
x¶ó´Â Æú´õ ¾Æ·¡ 1000°³ÀÇ Æú´õ¸¦ ¸¸µé°í ´Ù½Ã 1000°³¸¦ ¸¸µé°í ±× ¾È¿¡ 1000°³ÀÇ ÆÄÀÏÀ» »ý¼ºÇÏ´Â ½ÄÀ̴ϱî... ÃÑ 100¾ï°³ Á¤µµÀÇ ÆÄÀÏÀ» ¸¸µì´Ï´Ù.
´Ù ¼ÒÁøµÇ¸é ÆÄÀÏ ½Ã½ºÅÛÀÌ »ç¿ëºÒ´ÉÀÌ µÉ ¼öµµ ÀÖÀ¸´Ï ÁÖÀÇÇؼ­ »ç¿ëÇϼ¼¿ä.

pi@raspberrypi:~/Test/inode_full $ date; df -hi; sleep 10; df -hi
Fri 24 Nov 18:57:45 KST 2023
df: /run/user/1000/doc: Operation not permitted
Filesystem    Inodes IUsed IFree IUse% Mounted on
/dev/root        1.9M  912K  963K  49% /
devtmpfs        410K  433  410K    1% /dev
tmpfs            475K    1  475K    1% /dev/shm
tmpfs            800K  758  800K    1% /run
tmpfs            475K    3  475K    1% /run/lock
/dev/mmcblk0p1      0    0    0    - /boot
tmpfs            95K    28  95K    1% /run/user/1000
df: /run/user/1000/doc: Operation not permitted
Filesystem    Inodes IUsed IFree IUse% Mounted on
/dev/root        1.9M  972K  902K  52% /
devtmpfs        410K  433  410K    1% /dev
tmpfs            475K    1  475K    1% /dev/shm
tmpfs            800K  758  800K    1% /run
tmpfs            475K    3  475K    1% /run/lock
/dev/mmcblk0p1      0    0    0    - /boot
tmpfs            95K    28  95K    1% /run/user/1000
pi@raspberrypi:~/Test/inode_full $ cat inode_full.py
#!/usr/bin/python3

import os

os.mkdir('x')
for x in range(1000):
    x_dir = f'x/{x:05}'
    os.mkdir(x_dir)
    for y in range(1000):
        y_dir = f'/{y:05}'
        os.mkdir(x_dir + y_dir)
        for z in range(1000):
            with open(x_dir + y_dir + f'/{z:05}', 'w') as f:
                pass
     
µð½ºÅ© I/O°¡ ÀϾ´Â °Å¶ó¼­ ¾î¶² ÇÁ·Î±×·¡¹Ö ¾ð¾î¸¦ ½á¼­ ±¸ÇöÇÑ´Ù°í Çصµ ´À¸±°Ì´Ï´Ù.
Èæ±â»ç 2023-11
touch¸¦ ·çÇÁµ¹¸®´Â ½© ½ºÅ©¸³Æ® ¸¸µå´Â°Ô Á¦ÀÏ ºü¸¦°Ì´Ï´Ù.
c·Î ½Ã½ºÅÛÄÝ È£ÃâÇÏ´Â ÇÁ·Î±×·¥ ¸¸µé¾î µ¹¸±¼öµµ ÀÖ°í¿ä.
ÇϳªÀÇ µð·ºÅ丮¿¡ ³Ê¹« ÆÄÀÏÀ» ¸¹ÀÌ ³ÖÀ¸¸é ´À·ÁÁø´Ù´Â ±Ûµµ Àֱ⿡ Çϳª ´ç 1000°³·Î Á¦ÇÑÀ» Çß½À´Ï´Ù.
https://www.2cpu.co.kr/QnA/822426?&page=470
SSD¿¡¼­´Â ÀÌ·± ÀÛ¾÷ÇÏ¸é ¾ÈµË´Ï´Ù. ¼ö¸í ÆÅÆÅ ÁÙ¾î¿ä.
HDD¿¡¼­ Å×½ºÆ®Çϼ¼¿ä.
È­¶õ 2023-11
ÇØ´ç OS¿¡¼­ inode limit´Â pre-define ¾ÈµÇ¾î ÀÖ³ª¿ä??

for() + touch ¸é ±Ý¹æ ½Ã½ºÅÛ »¸À»°Í °°Àºµ¥¿ä??
³× ´äº¯ ÁֽŠºÐµé °¨»çÇÕ´Ï´Ù.
nfs¸¦ ƯÁ¤ ¸¶¿îÆ® Æ÷ÀÎÆ®·Î ÁöÁ¤Çؼ­, ¹«»çÈ÷ ½ÃÇè ¿Ï·á ÇÏ¿´½À´Ï´Ù.

°Åµì °¨»çÇÕ´Ï´Ù.


QnA
Á¦¸ñPage 210/5691
2014-05   5016659   Á¤ÀºÁØ1
2015-12   1552121   ¹é¸Þ°¡
2022-08   1464   windfantasia
2023-03   1464   Á¶ÀçÇü3
2022-12   1464   ¿¤Å¸
05-12   1464   ¯´Ô
03-13   1464   ¾ç½Ã¿­
2022-04   1464   Psychophysi¡¦
2023-11   1465   ¸ð¾îÄð
2023-11   1465   Àü¼³¼ÓÀǹ̡¦
2022-11   1465   ¿ä¸¦·¹ÀÌ
2023-01   1465   isaiah
2023-01   1466   ¾²·¹±â´ÜÀå
08-11   1466   °³¹ß³×¹ß
2023-01   1466   ¹Î»çÀå
07-29   1466   ¹«½î»Ôó·³
2022-03   1466   ¹Ú¹®Çü
02-19   1466   ¹Ì¿ìÁö½Ã¾ð
2022-05   1466   ºí·¹ÀÌ´õ¿µÈ¥
2022-12   1467   ¸·³»ÀÇÇÏ·ç
2022-10   1467   yooni
05-16   1467   ¹Î°æ¿­