




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、一種改進(jìn)的RAID 后臺(tái)初始化技術(shù) 摘 要: 新創(chuàng)建的RAID 系統(tǒng)必須要經(jīng)過初始化才能使磁盤上的隨機(jī)數(shù)據(jù)滿足一定的校驗(yàn)關(guān)系,從而使RAID 系統(tǒng)具有數(shù)據(jù)恢復(fù)能力。本文分析了傳統(tǒng)RAID 系統(tǒng)初始化方案的優(yōu)缺點(diǎn),提出了一種改進(jìn)的后臺(tái)初始化方案,試驗(yàn)證明該方案能夠有效做到初始化與主機(jī)IO 讀寫的并行,并在初始化性能和主機(jī)IO 讀寫性能上較傳統(tǒng)方案有較大的提高。關(guān)鍵詞:RAID;磁盤陣列;后臺(tái)初始化;數(shù)據(jù)一致性;校驗(yàn)初始化中圖分類號(hào):TP 文獻(xiàn)標(biāo)識(shí)碼:A1引言RAID 是Redundant Array of Inexpensive Disk 的縮寫意為
2、廉價(jià)冗余磁盤陣列。RAID 系統(tǒng)通過將數(shù)據(jù)拆分到多個(gè)磁盤,實(shí)現(xiàn)對(duì)多個(gè)磁盤的并行讀寫,大幅提高了數(shù)據(jù)讀寫性能。由于引入了條帶化的數(shù)據(jù)冗余技術(shù),RAID 系統(tǒng)還可以在一塊或者多塊磁盤損壞的情況下進(jìn)行正常的讀寫,并且能夠通過已有的數(shù)據(jù)重構(gòu)出損壞磁盤上的數(shù)據(jù)。有效的提高了數(shù)據(jù)的安全性和可靠性。 以常見的RAID5 為例:RAID5 分條中的各個(gè)數(shù)據(jù)單元應(yīng)滿足關(guān)系式P=D1D2D3Dn 其中為異或運(yùn)算,P 為校驗(yàn)單元,D1-n 為數(shù)據(jù)單元,我們將滿足這個(gè)異或關(guān)系式稱為滿足數(shù)據(jù)一致性。當(dāng)分條中某一個(gè)數(shù)據(jù)單元損壞后可以通過運(yùn)算式Dn=PD1D2D3 重構(gòu)出該數(shù)據(jù)單元的數(shù)據(jù)。由此可見只有數(shù)據(jù)一致性的RAID
3、系統(tǒng)才具有數(shù)據(jù)重構(gòu)的能力。但是對(duì)于一個(gè)新創(chuàng)建的RAID 來說由于磁盤上數(shù)據(jù)的分布是隨機(jī)的,這些數(shù)據(jù)并不滿足數(shù)據(jù)一致性,無法提供數(shù)據(jù)重構(gòu)等數(shù)據(jù)可靠性功能。所以RAID 系統(tǒng)在使用之前必須使各個(gè)磁盤上的數(shù)據(jù)滿足數(shù)據(jù)一致性,這個(gè)過程稱為RAID 系統(tǒng)的初始化。目前常用的初始化方式有寫零初始化和校驗(yàn)初始化兩種。寫零初始化通過將整個(gè)分條寫全0的方式來達(dá)到分條的數(shù)據(jù)一致性,校驗(yàn)初始式化通過對(duì)分條數(shù)據(jù)單元進(jìn)行異或運(yùn)算來的得到新的校驗(yàn)數(shù)據(jù)從而使分條滿足數(shù)據(jù)一致性。然而這些初始化方法都無法做到初始化與主機(jī)IO 的并行,RAID 系統(tǒng)都必須等待初始化完成以后才能進(jìn)行主機(jī)IO 的讀寫。由于初始化操作需要遍歷所有分條
4、,需要消耗大量的時(shí)間。用戶往往需要等待幾個(gè)小時(shí)甚至幾天的時(shí)間才能對(duì)新建立的RAID 系統(tǒng)進(jìn)行讀寫。為了實(shí)現(xiàn)RAID 系統(tǒng)初始化和主機(jī)IO 讀寫能夠并行進(jìn)行,使得RAID 系統(tǒng)一旦建立便可以正常讀寫,業(yè)界提出了多種后臺(tái)初始化方案。本文在綜合分析這些方案的基礎(chǔ)上提出了一個(gè)改進(jìn)的后臺(tái)初始化方案,較現(xiàn)有的方案在初始化性能和主機(jī)IO 性能上都有較大提高。2現(xiàn)有后臺(tái)初始化方案的比較與分析現(xiàn)有的后臺(tái)初始化方案大體可以分為基于寫零方式的后臺(tái)初始化方案和基于校驗(yàn)方式的后臺(tái)初始化方案兩種3。它們分別是在傳統(tǒng)的寫零初始化和校驗(yàn)初始化的基礎(chǔ)上加入了支持主機(jī)IO 也初始化并行的機(jī)制演變而來。與傳統(tǒng)的寫零初始化和校驗(yàn)初始
5、化方案相比這些后臺(tái)初始化方案能夠解決初始化與主機(jī)IO 并行操作的問題,但是由于附加機(jī)制的引入使得在初始化性能和主機(jī)IO 性能上都有不同程度的損耗,此同時(shí)由于單一依賴于寫零初始化或校驗(yàn)初始化使得這些方案不能很好的適應(yīng)主機(jī)IO 與初始化并行時(shí)的不同的場(chǎng)景。-2-2.1 基于校驗(yàn)方式的后臺(tái)初始化方案DeKoning,Humlicek 2等人提出了一種基于校驗(yàn)方式的后臺(tái)初始化方案,該方案從第一個(gè)分條開始依次向后進(jìn)行順序的校驗(yàn)初始化。由于校驗(yàn)初始化具有不破壞已寫入數(shù)據(jù)的優(yōu)點(diǎn),使得順序初始化進(jìn)程與主機(jī)IO 可以并行進(jìn)行。對(duì)于主機(jī)IO 的處理,該方案提出在初始化過程中如果主機(jī)IO 寫入的區(qū)域已經(jīng)初始化則主機(jī)
6、IO 采用讀改寫(Read-Modify Write)的方式寫入數(shù)據(jù),其中讀改寫的寫入方式為:1 讀取校驗(yàn)數(shù)據(jù)2 讀取分條中需要寫入的那些數(shù)據(jù)單元的舊數(shù)據(jù)3 將校驗(yàn)數(shù)據(jù),讀出的舊數(shù)據(jù) 需要寫入的新數(shù)據(jù)進(jìn)行異或得到新的校驗(yàn)數(shù)據(jù)4 將需要寫入的新數(shù)據(jù)和計(jì)算得到的新校驗(yàn)數(shù)據(jù)寫入分條如果主機(jī)IO 需要寫入的區(qū)域還未初始化則主機(jī)IO 采用重構(gòu)寫(Reconstruct Write)的方式寫入數(shù)據(jù),重構(gòu)寫的方式具體如下:1 讀取分條中需要寫入的數(shù)據(jù)以外的舊數(shù)據(jù)2 將需要寫入的新數(shù)據(jù),讀出的舊數(shù)據(jù)進(jìn)行異或得到新的校驗(yàn)數(shù)據(jù)3 寫入新數(shù)據(jù)4 寫入新的校驗(yàn)數(shù)據(jù)ND3 ND2 D1 NP異或運(yùn)算ND:需要寫入的新數(shù)
7、據(jù) NP:計(jì)算的校驗(yàn)數(shù)據(jù)分條圖2 重構(gòu)寫操作示意Fig2 Reconstruct Write diagram圖1 RAID5 分條結(jié)構(gòu)圖Fig1 RAID5 stripe structure-3-當(dāng)IO 寫入的區(qū)域正在初始化則等待該區(qū)域初始化完成后主機(jī)IO 數(shù)據(jù)按讀改寫方式寫入。該方案雖然實(shí)現(xiàn)了主機(jī)IO 與RAID 初始化操作的并行,但由于校驗(yàn)初始化需要讀出分條中的數(shù)據(jù)單元進(jìn)行異或計(jì)算校驗(yàn)數(shù)據(jù),使得順序初始化效率非常低。2.2 基于寫零方式的后臺(tái)初始化方案Hung Ching Hai1等人提出了一種基于寫零方式的后臺(tái)初始化方案。由于寫零初始化可能破壞主機(jī)IO 已經(jīng)寫入的數(shù)據(jù),該方案引入了初始化
8、分區(qū)表的概念,將整個(gè)RAID 空間分成若干個(gè)大小相等的分區(qū),每個(gè)分區(qū)用分區(qū)表中的一項(xiàng)表示,初始化開始前分區(qū)表中每個(gè)分區(qū)為未初始化狀態(tài)。該方案對(duì)各個(gè)分區(qū)依次進(jìn)行順序的寫零初始化,每個(gè)分區(qū)初始化完成后需要更新分區(qū)表中對(duì)應(yīng)項(xiàng)的狀態(tài)為已初始化。順序初始化進(jìn)程在初始化每個(gè)分區(qū)前需要查詢?cè)摲謪^(qū)對(duì)應(yīng)的分區(qū)表項(xiàng)狀態(tài)是否為已初始化,如果已經(jīng)初始化則順序初始化跳過該分區(qū)進(jìn)行下一個(gè)分區(qū)的初始化。對(duì)于主機(jī)IO 在寫入某個(gè)分區(qū)前也需要在初始化分區(qū)表中查詢?cè)摲謪^(qū)是否已經(jīng)初始化,如果該分區(qū)已經(jīng)初始化則直接寫入數(shù)據(jù),如果沒有初始化則首先采用寫零的方式初始化該分區(qū)并更新分區(qū)表,然后再寫入IO 數(shù)據(jù)。寫零與校驗(yàn)初始化性能比較05
9、01001502002501 2 3 41 單盤順序?qū)?2 寫零初始化 3 校驗(yàn)初始化MB/S圖3 寫零和校驗(yàn)初始化性能比較Fig3 Performance Comparison of two kinds of initialization對(duì)比以上兩種方案,Hung Ching Hai 等人的方案由于采用了寫零初始化,對(duì)于只有順序初始化而主機(jī)IO 沒有讀寫到的那些區(qū)域,初始化性能要明顯高于DeKoning 等人的校驗(yàn)初始化方案。但對(duì)于主機(jī)IO 讀寫的區(qū)域,Hung Ching Hai 等人的方案必須先將這些區(qū)域?qū)懭闳缓笾鳈C(jī)IO 才能采用寫入數(shù)據(jù),使得主機(jī)IO 的延時(shí)大大增加,嚴(yán)重降低了初始化
10、過程中主機(jī)IO 的性能。3一種改進(jìn)的后臺(tái)初始化方案3.1 基于寫零方式的后臺(tái)初始化方案綜合現(xiàn)有后臺(tái)初始化方案的優(yōu)點(diǎn)并分析他們的不足,本文提出了一種改進(jìn)的后臺(tái)初始化方案。為了在RAID 創(chuàng)建后主機(jī)IO 可以立刻對(duì)該RAID 系統(tǒng)進(jìn)行讀寫,本方案將RAID 初始化分為后臺(tái)順序初始化和主機(jī)IO 觸發(fā)的初始化。將整個(gè)RAID 組空間以分條為初始化的最小分區(qū),創(chuàng)建一張初始化位圖Bitmap 與之對(duì)應(yīng)。初始化位圖的每一個(gè)Bit 對(duì)應(yīng)一個(gè)分條,該Bit 為0 表示該分條還未被初始化,若為1 則表示該分條已經(jīng)被初始化。順序初始化進(jìn)程從第一個(gè)分條開始依次初始化所有分條,順序初始化采用性能最高的寫零的方式進(jìn)行初始
11、化,每初始化一個(gè)分條后順序初始化進(jìn)程將初始化位圖中對(duì)應(yīng)的Bit 置為1。由于順序初始化進(jìn)程采用分條寫全零的方式進(jìn)行初始化當(dāng)與主機(jī)IO 并行時(shí)可能將已經(jīng)寫入主機(jī)IO 數(shù)據(jù)的分條寫零,為了避免該情況的發(fā)生,順序初始化進(jìn)程在初始化每個(gè)分條前必須先查詢初始-4-化位圖中的對(duì)應(yīng)Bit,用以判斷該分條是否已經(jīng)格式化,如果該Bit 為1 則跳過該分條繼續(xù)下一個(gè)分條的初始化,如果該Bit 為0 則初始化該分條然后更新Bit 位為1。對(duì)于主機(jī)IO 觸發(fā)的初始化,為了盡量減小初始化對(duì)主機(jī)IO 的影響,本方案采用校驗(yàn)初始化的方式初始化主機(jī)IO 需要寫入的分條。主機(jī)IO 數(shù)據(jù)以重構(gòu)寫的方式寫入分條,可以同時(shí)完成分條的
12、初始化和IO 數(shù)據(jù)的寫入,可以最大限度的降低初始化對(duì)主機(jī)IO 寫入的時(shí)延。當(dāng)數(shù)據(jù)寫入后更新初始化位圖中對(duì)應(yīng)的Bit 位為1 表示該分條已經(jīng)初始化并寫入數(shù)據(jù),如果主機(jī)IO 所寫入的分條已經(jīng)初始化則直接寫入主機(jī)數(shù)據(jù)。順序初始化位圖Bit=0分條寫全零跳到下一個(gè)分條否是最后一個(gè)分條?END否設(shè)置位圖相應(yīng)Bit=1是圖 4 順序初始化進(jìn)程流程示意Fig4 Flowchart of Sequential Initialization process-5-本方案中由于順序初始化不承載主機(jī)IO 數(shù)據(jù),所以直接采用速度和效率最快的寫零初始化的方式將分條寫入全零數(shù)據(jù)而無需讀出原有數(shù)據(jù)并計(jì)算校驗(yàn)位,可以最大限度的
13、利用磁盤帶寬,是目前最快的初始化方式。但對(duì)于主機(jī)IO 觸發(fā)的初始化由于整個(gè)初始化過程最后需要寫入主機(jī)IO 數(shù)據(jù),如果依然采用寫零發(fā)的初始化方式則主機(jī)IO 在寫入前需要調(diào)用寫零初始化將分條寫零,然后才能以讀改寫的方式寫入主機(jī)IO 數(shù)據(jù),大大增加了主機(jī)IO 的時(shí)延。然而主機(jī)IO 初始化直接采用重構(gòu)寫的方式寫入數(shù)據(jù)可以同時(shí)做到初始化分條和數(shù)據(jù)寫入的目的,主機(jī)IO 初始化采用重構(gòu)寫的方式初始化比寫零的初始化方式效率更高,能有效的降低主機(jī)IO 的時(shí)延。與此同時(shí)采用初始化位圖的方式記錄已經(jīng)初始化和未初始化的分條,有效地避免了寫零初始化對(duì)主機(jī)IO 寫入數(shù)據(jù)的破壞。本方案綜合了寫零初始化和校驗(yàn)初始化在不同場(chǎng)景
14、下的優(yōu)點(diǎn),彌補(bǔ)了單一使用一種初始化方式帶來的不足,兼顧了順序初始化和主機(jī)IO 的性能。3.2 初始化位圖的置換算法本方案使用了精細(xì)到分條粒度的初始化位圖,是為了能夠支持主機(jī)IO 初始化時(shí)進(jìn)行分條的重構(gòu)寫操作同時(shí)可以避免對(duì)分條進(jìn)行操作時(shí)順序?qū)懥愠跏蓟茐闹鳈C(jī)IO 寫入的數(shù)據(jù)。只有這樣才能夠?qū)懥愫托r?yàn)兩種初始化類型結(jié)合到一起,由此可以看出位圖有著至關(guān)重要 的作用。與采用較大的初始化分區(qū)相比精細(xì)到分條的分區(qū)使得位圖的大小有所增加??紤]到在初始化過程中一定時(shí)間段內(nèi)可能只有一小部分空間被初始化,而內(nèi)存中只需要
15、存放這部分空間對(duì)應(yīng)的初始化位圖即可,其余位圖可以存放在磁盤中等到需要查詢和設(shè)置時(shí)再讀入內(nèi)存。 由此我們借鑒了LRU 頁面置換算法來管理我們的位圖空間。首先我們將整張位圖以4K 頁面的形式存放在RAID 組成員磁盤的保留區(qū)域,在內(nèi)存中我同樣以4K 頁面的形式來管理位圖,系統(tǒng)開始時(shí)先從磁盤中讀出一部分位圖4K 頁面到內(nèi)存,在內(nèi)存中維護(hù)一個(gè)位圖4K 頁面表,記錄著每個(gè)4K 頁面的內(nèi)存地址,磁盤位置,以及未命中次數(shù)的計(jì)數(shù)值,該計(jì)數(shù)值用來記錄該4K 頁面未被命中的次數(shù)。每當(dāng)一個(gè)位圖4K 頁面被初始化進(jìn)程查詢或設(shè)置一次,該頁面的對(duì)應(yīng)計(jì)數(shù)值清0。其余所有未被訪問的4K 頁面的計(jì)數(shù)值增加1,當(dāng)順序初主機(jī)IO位
16、圖Bit=0直接寫入IO數(shù)主機(jī)IO大寫據(jù)否是讀or寫直接讀取END讀寫更新位圖對(duì)應(yīng)Bit=1圖5 主機(jī)IO 觸發(fā)的初始化進(jìn)程流程示意Fig5 Flowchart of IO Initialization process-6-始化或主機(jī)IO 初始化需要訪問的位圖不在內(nèi)存中時(shí),從磁盤中讀出需要訪問的那個(gè)位圖4K頁到內(nèi)存中,并將未命中計(jì)數(shù)值最大的那一個(gè)頁面寫入磁盤對(duì)應(yīng)位置,將其換出內(nèi)存。使用該算法能夠有效的減少位圖對(duì)內(nèi)存的開銷。4實(shí)驗(yàn)及結(jié)果分析我們以4 盤的RAID5 為基準(zhǔn),對(duì)本文提出的方案進(jìn)行測(cè)試,并與DeKoning 等人的傳統(tǒng)校驗(yàn)后臺(tái)初始化方案和Hung Ching Hai 等人的傳統(tǒng)寫零后
17、臺(tái)初始化方案在順序初始化性能和初始化過程中的主機(jī)IO 性能上進(jìn)行比較。順序初始化性能比較0501001502001 2 3 41 傳統(tǒng)校驗(yàn)方式 2 傳統(tǒng)寫零方式 3 本方案MB/S圖 6 順序初始化性能比較Fig6 Performance Comparison of three kinds of Sequential initialization由圖6 可以看到對(duì)于順序格式化,傳統(tǒng)的后臺(tái)寫零初始化性能最高,達(dá)到了150MB/S而傳統(tǒng)的校驗(yàn)格式化性能最低只有80MB/S 左右,由于本方案的順序初始化部分采用了寫零方式,使得順序初始化性能與傳統(tǒng)的寫零初始化基本相當(dāng),達(dá)到了145MB/S。與傳統(tǒng)寫零
18、方式差距分析主要可能是由于位圖讀寫以及位圖的置換算法帶來的性能損耗。滿分條順序?qū)懼鳈C(jī)IO性能比較050100150200250512 128 64 32 16分條深度 單位KBMB/S本方案傳統(tǒng)寫零后臺(tái)初始化傳統(tǒng)校驗(yàn)后臺(tái)初始化圖 7 主機(jī)IO 性能比較Fig7 Performance Comparison of three kinds of IO initialization初始化過程中的主機(jī)IO 性能是衡量后臺(tái)初始化方案好壞的一個(gè)重要指標(biāo),本文對(duì)不同分條深度的LUN 進(jìn)行主機(jī)順序?qū)懖僮?,得到如圖7 的性能統(tǒng)計(jì)結(jié)果??梢钥吹接捎趥鹘y(tǒng)的寫零后臺(tái)初始化在初始化過程中主機(jī)IO 需要進(jìn)行分條寫全零再寫
19、分條數(shù)據(jù),相當(dāng)于進(jìn)行了兩次寫操作其主機(jī)IO 性能最差,而傳統(tǒng)的校驗(yàn)后臺(tái)初始化的主機(jī)IO 性能最高,幾乎與正-7-常情況下的主機(jī)IO 性能相當(dāng)。本方案對(duì)于主機(jī)IO 觸發(fā)的初始化采用與而傳統(tǒng)的校驗(yàn)后臺(tái)初始化相同的重構(gòu)寫方式,使得本方案初始化過程中的主機(jī)IO 性能幾乎和校驗(yàn)初始化相當(dāng),相比于寫零初始化有很大的提高。5結(jié)論傳統(tǒng)的后臺(tái)初始化方案由于自身初始化方式的局限,無法做到初始化和主機(jī)IO 性能的兼?zhèn)?。與這些傳統(tǒng)的后臺(tái)初始化方案相比本文提出的改進(jìn)方案吸取了傳統(tǒng)的寫零初始化和校驗(yàn)初始化的優(yōu)點(diǎn),能夠很好的兼顧初始化性能和主機(jī)IO 性能,相對(duì)于傳統(tǒng)方案有較大的性能提升。參考文獻(xiàn)1 Hung Ching h
20、ai . Raid consistency initialization method P .United States Patent Application,20050076260,April 7, 2005 .2 Rodney A DeKoning, Donald R Humlicek, Robin Huber .Method for logical unit creation with immediateavailability in a raid storage environment P . United States Patent 6467023 Oct 15, 2002.3 譚志虎,謝長生,萬繼光. RAID 一致性初始化方法研究A. 小型 微型計(jì)算機(jī)系統(tǒng), 2008,29(7):1204-12074 張靜. RAID 技術(shù)工作原理分析及實(shí)現(xiàn)J. 科技信息, 2008,(32):33
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 甘肅省定西市安定區(qū)2024-2025學(xué)年七年級(jí)下學(xué)期期末檢測(cè)語文試卷(含答案)
- 醫(yī)保知識(shí)培訓(xùn)課件教學(xué)
- 江西省宜春市部分重點(diǎn)中學(xué)2024-2025學(xué)年高一下學(xué)期7月聯(lián)考政治試卷(PDF版含解析)
- 2025年中國潔面儀行業(yè)市場(chǎng)前景預(yù)測(cè)及投資戰(zhàn)略研究報(bào)告
- 2021-2026年中國多功能輔食機(jī)行業(yè)發(fā)展監(jiān)測(cè)及投資戰(zhàn)略規(guī)劃研究報(bào)告
- 2025年藥品采購及代理市場(chǎng)調(diào)研報(bào)告
- 中國空氣收縮管行業(yè)市場(chǎng)發(fā)展前景及發(fā)展趨勢(shì)與投資戰(zhàn)略研究報(bào)告(2024-2030)
- 2025年紅細(xì)胞溶血素項(xiàng)目申請(qǐng)報(bào)告
- 2025年鞣制毛皮、人造毛皮及其制品項(xiàng)目申請(qǐng)報(bào)告
- 2025年環(huán)氧大豆油項(xiàng)目申請(qǐng)報(bào)告
- GB 11930-1989操作開放型放射性物質(zhì)的輻射防護(hù)規(guī)定
- 起重作業(yè)吊索具使用安全培訓(xùn)課件
- 中小學(xué)班主任工作手冊(cè)(修訂)
- 育嬰員中級(jí)近年考試真題匯總(含答案)
- 順德區(qū)國家工作人員因私出國(境)審批表
- 2022泉州實(shí)驗(yàn)中學(xué)初一新生入學(xué)考試語文卷
- 高原切花玫瑰編制說明(農(nóng)標(biāo)委報(bào)批)
- 酒店住宿水單模板
- 安徽省安裝工程消耗量定額(共165頁)
- 《課程標(biāo)準(zhǔn)》編制說明
- 土方回填施工組織設(shè)計(jì)方案
評(píng)論
0/150
提交評(píng)論