Linux學(xué)習(xí)筆記(二)

文件描述符FD

A. 概念:

  • 當(dāng)進(jìn)程打開現(xiàn)有文件或創(chuàng)建新文件時(shí),內(nèi)核向進(jìn)程返回一個(gè)文件描述符(本質(zhì)上FD是index,為了讓內(nèi)核高效管理被打開的文件);

  • 文件描述符有三個(gè)表,進(jìn)程級、系統(tǒng)級 & 文件系統(tǒng)的i-node表

B. FD,文件 & 進(jìn)程的關(guān)系:

  • 每個(gè)fd僅對應(yīng)一個(gè)文件;

  • 不同的fd可能指向一個(gè)文件(比如多個(gè)進(jìn)程都打開了同一個(gè)文件);

  • 一個(gè)文件可被不同的進(jìn)程打開,一個(gè)進(jìn)程也可多次打開一個(gè)文件

C. 詳述三個(gè)表:

  • 進(jìn)程級fd:0-n的標(biāo)識符+文件指針,指向系統(tǒng)級fd;

  • 系統(tǒng)級fd:文件偏移量(又稱文件句柄)+inode指針,同一文件偏移量必指向同一inode(文件),不同文件偏移量也有可能指向一個(gè)inode;

  • inode表:對應(yīng)文件

  • 總結(jié):進(jìn)程表中的文件指針若指向同一文件句柄,那必然是指向同一個(gè)inode文件;文件指針指向不同文件句柄(文件偏移量),但也有可能最后的inode指針指向同一個(gè)inode。

文件系統(tǒng) & 文件描述符課后實(shí)操

A. 阿里云系統(tǒng)盤擴(kuò)容:

  • 快照備份:控制臺完成快照備份,用于回滾準(zhǔn)備;

  • 控制臺申請:快照完畢后申請?jiān)票P擴(kuò)容(比如100g,其中vda1 50g,vda2 50g,想讓vda1變成500g),并購買數(shù)據(jù)盤云盤100g,用于存vda2的數(shù)據(jù);

  • 刪除老舊分區(qū):如果之前系統(tǒng)盤已經(jīng)有多個(gè)partiton(使用lsblk -f或者df -Th查看),此時(shí)需要刪除vda2則先umount xxx路徑,再使用fdisk /dev/vda,然后d 2 wq(此操作刪除第二分區(qū));

  • 掛載新數(shù)據(jù)盤:
    a. 創(chuàng)建分區(qū):fdisk /dev/vdb,然后n p 1 回車 回車 wq,完成分區(qū)創(chuàng)建;
    b. 創(chuàng)建fs:使用mkfs.ext4 /dev/vdb1創(chuàng)建ext4文件系統(tǒng)于vdb1分區(qū)下;
    c. 云盤掛載:使用mount /dev/vdb1 xxx路徑完成掛載;
    d. 自動掛載:使用lsblk -f獲取uuid,vim /etc/fstab寫入配置,重啟自動掛載;

  • 云主機(jī)重啟:若不需要vda2的數(shù)據(jù)后續(xù)使用過程中遷移至數(shù)據(jù)盤,可省略上面一步,刪除后直接開始系統(tǒng)盤擴(kuò)容,但是需先reboot這樣fs才能刪掉有掛載點(diǎn);

  • 完成擴(kuò)容:
    a. 擴(kuò)容分區(qū):重啟后使用growpart /dev/vda 1(注意,1之前有空格,代表分區(qū)的號碼)進(jìn)行分區(qū)vda1的擴(kuò)容(50g變成500g);
    b. 報(bào)錯修正:若無該命令,請yum install cloud-utils-growpart xfsprogs -y;若有該命令,但是運(yùn)行報(bào)錯,請運(yùn)行LANG=en_US.UTF-8再重新growpart;
    c. 擴(kuò)展fs:使用resize2fs /dev/vda1擴(kuò)展文件系統(tǒng),大功告成。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容