Showing posts with label கோப்பு முறைமை. Show all posts
Showing posts with label கோப்பு முறைமை. Show all posts

Mar 3, 2012

லினக்ஸ் கோப்பு முறைமை(Linux File System) பகுதி -2

Linux File System த்தில் என்ன இருக்கிறது?
கோப்பு முறைமை (File System) இரண்டு வகைகளாகப் பிரிக்கப்படுகிறது.
  1. User Data (பயனர் தகவல்) - பயனாளர்களினுடைய அனைத்து தகவல்களும் மற்றும் Actual Data க்களும் சேமிக்கப்படுகிறது.
  2. Meta Data(தகவலின் தகவல்) - கோப்பு முறைமையினுடைய கட்டமைப்பு தகவல்கள் சேமிக்கப்படுகிறது. super block, inodes, directories போன்றவைகள்.
  • / - Root Directory
  • /usr - பயன்பாட்டு நிரல்கள் சேமிக்கப்படுகிறது.
  • /var-log files, mails, மற்றும் மற்ற தகவல்கள் சேமிக்கப்படுகிறது.
  • /tmp- temporary files சேமிக்கப்படுகிறது.
  • /home- பயனாளர்களினுடைய அனைத்து தகவல்களும் இங்குதான் சேமிக்கப்படுகிறது.

Super Blocks என்றால் என்ன?
முதலில் Blocks என்பது என்னவென்றுப் பார்ப்போம், Block என்பது , தொடர்ச்சியாக தொகுக்கப்பட்ட Bits அல்லது Bytes களாகும். இது தகவலினை அடையாளப்படுத்தக்கூடிய அலகினை உருவாக்குகிறது.(Identifiable Unit of Data).

உதாரணமாக ஒரு 20GB HardDisk னை எடுத்துக்கொள்வோம். வட்டினுடைய மொத்த அளவும் நிறைய file system block களால் பிரிக்கப்பட்டு இருக்கும். அப்படினா Blocks எதற்காக பயன்படுத்தப் படுகிறது.

இரண்டு வெவ்வேறு வகையான பயன்பாடுகளுக்காக பயன்படுத்தப்படுகிறது.
  1. User னுடைய தகவல்கள் அல்லது கோப்புகளினை சேமிக்கப் பயன்படுகிறது(User Data)
  2. ஒவ்வொரு கோப்பு முறைமைகளிலும் சில Blocks கள் Meta Data வினை சேமித்து வைக்கப் பயன்படுகிறது.

Meta Data வானது கோப்பு முறைமையினுடைய கட்டமைப்பினை விவரிக்கிறது. பெரும்பாலான Meta Data வினுடைய கட்டமைப்புகள் super block, inode மற்றும் directories களாக இருக்கும்.

Super blocks:

ஒவ்வொரு கோப்பு முறைமையும் ஒவ்வொன்றிலிருந்தும் வேறுப்பட்டு இருக்கும். வெவ்வேறு வகையினைச் சார்ந்ததாகவும், வெவ்வேறு அளவினைக் கொண்டதாகவும் இருக்கும். உதரணமாக ஒரு File System 5GB யாக இருந்தால் மற்றொன்று 100GB யாக இருக்கும். ext2, ext3, NTFS, FAT னைப் போல.

மேலும் ஒவ்வொரு கோப்பு முறைமையும் ஒரு Super block னை கொண்டிருக்கும். இந்த Super block கள் கோப்பு முறைமையினுடைய File system type, Size, Status, meta data structure ஆகிய தகவல்களைக் கொண்டிருக்கும்.

இந்த தகவல்களில் இழப்புகள் ஏற்பட்டால் நமக்கும் தகவல் இழப்பு (Data Loss)ஏற்படும். ஏனென்றால் ஒரு கோப்பினுடைய முக்கியமான தகவல்கள் இங்கு இருக்கிறது. அதனால் லினக்ஸ் இயங்குதளமானது, ஒவ்வொரு கோப்பு முறைமையிலும் நிறைய Super block பிரதிகளை (copy) எடுத்து வைத்திருக்கும்.

இந்த பிரதி எடுக்கப்பட்ட super blocks கள் அவசரமான காலக்கட்டங்களில் உதவும். ஒருவேளை முதன்மை super blocks களை இழந்துவிட்டால் கீழ்கண்ட கட்டளையின் மூலம் நாம் பிரதி எடுக்கப்பட்ட super blocks இருக்கும் இடத்தினை தெரிந்துக் கொள்ளலாம்.

# dumpe2fs /dev/sda9 | grep -i superblock



Journaling File System என்றால் என்ன?

Ext3, Ext4, XFS, RFS ஆகியவைகள் Journaling File System வகையினைச் சார்ந்தது ஆகும். Ext3 க்கு முன்பு அதாவது Ext2 வரை கணினி ஒழுங்கமைவு இல்லாமல் நிறுத்தப்படும் அல்லது அணைக்கப்படும் பொழுது fsck கட்டளையினைக் கொண்டுதான் கோப்பினுடைய நிலைத்தன்மை சோதனை செய்யப்பட்டு கோப்புகள் மீள் அமைவு செய்யப்பட்டது.

இதை கட்டளை செயல்படுவதை Ext3 File System அறிமுகப்படுத்துவதற்கு முன்பு உள்ள கணினிகளில் பார்த்திருக்கலாம். இந்த fsck பயன்பாடானது கோப்பு முறைமையினைப் Scan செய்து ஒழுங்குப் படுத்துகிறது. இந்த ஒழுங்கு படுத்துவதில் தோல்வி ஏற்பட்டால் நமக்கு Graphical Mode கிடைக்காமல் Text Mode ல் பணிபுரியும் வாய்ப்புதான் கிடைக்கும்.

இந்த பின்னடைவுகள் அனைத்தையும் Journaling File system தகர்த்தெறிந்தது. Journaling File System எப்படி வேலை செய்கிறது என்று பார்த்தோமானால் ,

நாம் ஒரு கோப்பினை உருவாக்குகிறோம் பின்பு அதனை சேமிக்கிறோம். இந்த முறை பொதுவாக Journaling File system அல்லாத மற்ற கோப்பு முறைமைகளில் பின்பற்றப்படுகிறது. ஆனால் Journaling File System த்தில் ஒரு கோப்பானது கோப்பு முறைமையில் பதிவு செய்வதற்கு முன்பு Circular Log File -ல் ஒரு குறிப்பிட்ட இடைவெளியில் அதனுடைய மாற்றங்கள் சேமிக்கப் படுகிறது.

ஒருவேளை திடீரென்று மின்வெட்டு ஏற்பட்டு கணினி அணைக்கப்பட்டால் அந்த கோப்பினைப் பற்றிய தகவல்களை Buffer File ல் இருந்து மீட்டெடுக்கமுடியும். Journaling File System , Meta Data இழப்பினை தவிர்க்க உதவுகிறது ஆகையால் நமக்கு தகவல்களை மீட்டெடுப்பது எளிதாகிறது. லினக்ஸினுடைய கோப்பு முறைமை சிதையாமல் இருப்பதற்கு இதுவும் ஒரு காரணமாகும்.

----முற்றும்----

லினக்ஸ் கோப்பு முறைமை(Linux File System) பகுதி -1

பொதுவாக கோப்புமுறைமையானது கோப்புகளை நிர்வகிக்கவும், ஒருங்கிணைக்கவும் பயன்படுத்தப் படுகிறது. லினக்ஸ் இயங்குதளத்தைப் பொறுத்தவரையில் அனைத்துமே கோப்புகள்தான். நூற்றுக்கும் அதிகமான கோப்பு முறைமைகளை லினக்ஸ் இயங்குதளம் ஆதரிக்கிறது.

கோப்பு(File) என்றால் என்ன?
வன்வட்டில்(Hard Disk) சேமித்து வைக்கப்பட்டிருக்கும் தரவு உருப்படிகளின் (Data Items) சேகரிப்பே கோப்பு எனப்படும். கோப்பானது ஒரு படமாகவோ, பாடல்களாகவோ, காணொளிகளாகவோ, ஒலியாகவோ இருக்கலாம். கணினியில் நாம் எதை சேமித்தாலும் அது ஒரு கோப்பாகத்தான் சேமிக்கப்படும்.

கணினியில் உள்ள கோப்பானது கணினியினுடைய Devices களுடன் நெருங்கிய தொடர்புக் கொண்டிருக்கும். உதாரணமாக வன்வட்டு, Floppy disk போன்றவைகள். File(கோப்பு) தான் File system த்தினுடைய அமைப்பில் இறுதியாக இருக்கும்.

அடைவு(Directory) என்றால் என்ன?
கோப்புகளினுடைய சேகரிப்பே அடைவு ஆகும். அடைவுகள் இரண்டு வகைகளாக பிரிக்கப் பட்டிருக்கிறது.
  1. Root Directory
  2. Sub Directory
Root Directory:
லினக்ஸ் இயங்குதளத்தைப் பொறுத்தவரையில் கண்டிப்பாக ஒரே ஒரு Root Directory தான். Root Directory யானது / (முன்னோக்கிய சாய்வு குறியீடு) ஆல் குறிப்பிடப்படுகிறது.

அதாவது நம்முடைய லினக்ஸ் இயங்குதளத்தில் உள்ள கோப்புகள் மற்றும் அடைவுகளினுடைய மொத்த வேர் Root Directory ஆகும். Root Directory -யினை எந்தவொரு வழியிலும் நம்மால் Rename மற்றும் Delete செய்ய முடியாது. லினக்ஸ் இயங்குதளத்தினுடைய அனைத்து அடைவுகள் மற்றும் கோப்புகளும் இதன் கீழ்தான் அமையும்.

Sub Directory :
Root Directory யின் கீழ் உள்ள அனைத்து அடைவுகளும் Sub Directory ஆகும். Sub Directory க்கு மறுபெயர் இடுவது மற்றும் உப அடைவினை நீக்கம் செய்வது போன்ற செயல்களை மேற்க்கொள்ளலாம்.

அடைவுகள் (Directory) நம்முடைய கோப்புகளினுடைய தகவல்களையும், நிரல்களையும் திறமையாக ஒருங்கிணைக்க பயன்படுத்தப் படுகிறது.

லினக்ஸ் ஆதரிக்கும் கோப்பு முறைமைகள் :
லினக்ஸ் இயங்குதளமானது நூற்றுக்கும் மேற்பட்ட கோப்பு முறைமைகளை ஆதரிக்கிறது. விண்டோஸ் இயங்குதளம் FAT, NTFS இந்த இரண்டு முறைமைகளையும் தவிர வேறு எதையும் ஆதரிக்காது என்பதைக் கவனத்தில் கொள்ள வேண்டும்.

லினக்ஸின் கோப்பு முறைமைகளில் முக்கியமானது.
Ext2 : இந்த கோப்பு முறைமையானது ஒரு யுனிக்ஸ் கோப்பு முறைமையாகும். blocks, inodes மற்றும் Directories என்ற கருத்தாக்கங்களைக் கொண்டது.

Ext3 : இந்த கோப்பு முறைமையாது Ext2 கோப்பு முறைமையுடன் பதிவு செய்யும் (Journalling) திறன்களையும் மேம்படுத்திய பதிப்பு ஆகும். Journalling முறை வேகமாக கோப்பு முறைமைகளை மீட்டெடுக்க அனுமதிக்கிறது.

Ext4 : ext4 கோப்பு முறைமை ext3ஐ அடிப்படையாக கொண்டது மற்றும் சில வளர்ச்சியும் உள்ளது. நீண்ட கோப்பு முறைமைகள் மற்றும் நீண்ட கோப்புகளை, விரைவான மற்றும் மிக தகுதியான ஒதுக்கப்பட்ட வட்டின் இடத்திற்கு துணைபுரிகிறது, ஒரு அடைவினுள் துணை அடைவுகளின் எண்ணிக்கைக்கு வரையறை இல்லை, விரைவு கோப்பு முறைமை சரிபார்க்கிறது, மற்றும் அதிக வலுவுடன் பயணிக்கிறது. முன்னிருப்பாக(Default Selection) ext4 ஐ தேர்வு செய்ய பெரிதும் பரிந்துரைக்கப்படுகிறது.

XFS : XFS அதிகமாக ஏறக்கூடியது, அதிக-செயற்பாடு கோப்பு முறைமை கோப்புமுறைகள் 16 எக்ஸாபைட்டுகள் வரை துணைபுரிகிறது (சரியாக 16 மில்லியன் எக்ஸாபைட்டுகள்), கோப்புகள் 8 எக்ஸாபைட்டுகள் வரை (சரியாக 8 மில்லியன் டெராபைட்டுகள்) மற்றும் அடைவு அமைப்புகள் பத்து மில்லியன் உள்ளீட்டுகளை பெற்றுள்ளன. XFS மெட்டாதரவு ஜர்னலிங்கிற்கு துணைபுரிகிறது.

ISOFS(ISO 9660) :
CDROM னால் பயன்படுத்தப் படும் கோப்பு முறைமை.

SYSFS :
இது ஒரு ram-based கோப்பு முறைமையாகும், இந்தக் கோப்பு முறைமை Kernel Objects னை முதன்மை நினைவகத்தில் ஏற்ற உதவுகிறது. ஆகையால் கடைநிலை பயனாளர் இந்த கோப்பு முறைமையினை மிகவும் எளிமையாக பயன்படுத்திக் கொள்ளலாம்.

ProcFS :
kernel -ல் உள்ளிணைப்பாக உள்ள தரவு கட்டமைப்புகளுக்கு(Data Structures) இடைமுகப்பு போல செயல்படுகிறது. Runtime -ல் sysctl கட்டளையினைப் பயன்படுத்தி குறிப்பிட்ட Kernel parameter களை மாற்றம் செய்வதற்கும் மற்றும் System பற்றிய தகவல்களைப் பெறுவதற்கும் பயன்படுத்தப்படுகிறது. உதாரணமாக செயலியினுடைய (processor) தகவல்களை cpuinfo கட்டளையினைப் பயன்படுத்திப் பெறலாம்.

NFS :
Server/Client கருவாக்கத்தில் (Concept) ஒரு கோப்பினை, பல பயனாளர்களும், பல கணினிகளும் பகிர்ந்துக் கொள்வதற்கு Network File System அனுமதிக்கிறது.

mount (Terminal -ல் mount என தட்டச்சு செய்து பார்க்கவும்) கட்டளையினைப் பயன்படுத்தி நம்முடைய லினக்ஸ் கணினியில் என்ன வகையான கோப்பு முறைமைகள் Mount ஆகியிருக்கிறது. என்பதை தெரிந்துக்கொள்ளலாம்.

தொடரும்........