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

   Á¶È¸ 1397   Ãßõ 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 2120/5686
2014-05   4969605   Á¤ÀºÁØ1
2015-12   1505916   ¹é¸Þ°¡
2017-02   5971   ³×ÀÌÃÄ
2016-03   3356   izegtob
2015-01   10907   À©µµ¿ì10
2018-05   6139   Á¤ÀºÁØ1
2020-09   4443   ¹Ý¼º¸¸
2016-03   4927   e5472
2017-02   4359   FAHRENHEIT
2017-02   4221   ÀÌÈñÁÖ
2018-05   4022   Àü»êoa
2016-03   4654   Äðº¸ÀÌ
2023-11   3914   È­¶õ
2023-11   3256   Ç®·Îµå½Ã½ºÅÛ
2019-07   7289   makesound
2013-09   4756   fLog
2010-11   7825   ¿ÀŽÂ
2015-01   2863   ¹«¾Æ
2022-04   3024   Youb
2016-03   3455   °æ¹ÚÇѽùÎ
2022-04   2085   »õ·Î¿îÂ÷¿ø
2023-11   1398   Àü¼³¼ÓÀǹ̡¦