區域、雙區域和多區域設定

本頁面說明 Spanner 中可用的不同執行個體設定類型,以及這些類型之間的差異和取捨。

執行個體設定

Spanner 執行個體設定會定義該執行個體中資料庫的地理位置和複製作業。建立執行個體時,您必須將其設定為單一區域、雙區域或多區域。選取執行個體設定即可做出這項選擇,決定該執行個體的資料儲存位置:

如要進一步瞭解特定區域的注意事項,請參閱「地理位置與區域」一文。

預先定義區域和複製拓撲的執行個體設定稱為基本執行個體設定。您可以建立自訂執行個體設定,並將額外的選用唯讀副本新增至預先定義的基礎執行個體設定 (適用於 Enterprise 版和 Enterprise Plus 版)。新增的唯讀副本必須位於現有執行個體設定以外的區域。如需可新增的選用唯讀區域清單,請參閱「區域可用設定」和「多區域可用設定」中的「選用區域」欄。您無法變更基本執行個體設定的複製拓撲。詳情請參閱「唯讀副本」。

您可以將執行個體從任何執行個體設定移至任何其他區域、雙區域或多區域執行個體設定 (例如從 regional-us-central1 移至 nam3)。您也可以建立新的自訂執行個體設定,並新增副本,然後將執行個體移至新的自訂執行個體設定。舉例來說,如果執行個體位於 regional-us-central1,且您想新增唯讀備用資源 us-west1,則需要以 regional-us-central1 為基礎設定,建立新的自訂執行個體設定,並將 us-west1 新增為唯讀備用資源。然後將執行個體移至這個新的自訂執行個體設定。

區域性設定

Google Cloud 服務據點遍布北美洲、南美洲、歐洲、亞洲和澳洲各地。如果使用者和服務位於單一區域內,請選擇區域執行個體設定,以盡可能降低讀取和寫入作業的延遲時間。

對於任何基本區域設定,Spanner 會維護三個讀寫備用資源,每個資源都位於該區域的不同 Google Cloud 可用區。每個讀寫備用資源都包含營運資料庫的完整副本,可處理讀寫和唯讀要求。Spanner 會使用不同可用區的副本,因此即使發生單一可用區故障,資料庫仍可繼續運作。

可用的設定

Spanner 提供下列基本區域執行個體設定。如要要求下列表格未列出的選用唯讀副本區域,請填寫這份要求表單。請注意,我們會根據這些要求評估未來區域的需求,因此可能不會直接回覆您的要求。

基本設定名稱 地區說明 選填區域
美洲
regional-northamerica-northeast1 蒙特婁 節能綠葉圖示 低二氧化碳排放
regional-northamerica-northeast2 多倫多 節能綠葉圖示 低二氧化碳排放2
regional-northamerica-south1 克雷塔羅 <
regional-southamerica-east1 聖保羅 節能綠葉圖示 低二氧化碳排放
regional-southamerica-west1 聖地牙哥 節能綠葉圖示 低二氧化碳排放
regional-us-central1 愛荷華州 節能綠葉圖示 低二氧化碳排放 唯讀:asia-northeast1 1-OR
asia-south1 1-OR
europe-west1 2-OR
europe-west2 1-OR
europe-west9 1-OR
us-west3 1-OR
regional-us-east1 南卡羅來納州 <0x0 唯讀:us-central1 1-OR
us-west1 1-OR
europe-west1 1-OR
europe-west3 1-OR
regional-us-east4 北維吉尼亞州 <0x0
regional-us-east5 哥倫布 <0 唯讀:us-central1 1-OR
regional-us-south1 達拉斯 節能綠葉圖示 低二氧化碳排放
regional-us-west1 奧勒岡州 節能綠葉圖示 低二氧化碳排放2
regional-us-west2 洛杉磯 <0
regional-us-west3 鹽湖城 <0
regional-us-west4 拉斯維加斯 <
歐洲
regional-europe-central2 華沙 節能綠葉圖示 低二氧化碳排放
regional-europe-north1 芬蘭 節能綠葉圖示 低二氧化碳排放
regional-europe-north2 斯德哥爾摩 節能綠葉圖示 低二氧化碳排放
regional-europe-southwest1 馬德里 節能綠葉圖示 低二氧化碳排放
regional-europe-west1 比利時 節能綠葉圖示 低二氧化碳排放 唯讀:us-central1 1-OR
us-west1 1-OR
regional-europe-west2 倫敦 節能綠葉圖示 低二氧化碳排放
regional-europe-west3 法蘭克福 <
regional-europe-west4 荷蘭 節能綠葉圖示 低二氧化碳排放
regional-europe-west6 蘇黎世 節能綠葉圖示 低二氧化碳排放
regional-europe-west8 米蘭 節能綠葉圖示 低二氧化碳排放
regional-europe-west9 巴黎 節能綠葉圖示 低二氧化碳排放
regional-europe-west10 柏林 <0x
regional-europe-west12 杜林 節能綠葉圖示 低二氧化碳排放
亞太地區
regional-asia-east1 臺灣 <0x0
regional-asia-east2 香港 <0x0
regional-asia-northeast1 東京 <0x0
regional-asia-northeast2 大阪 <0x0
regional-asia-northeast3 首爾 <0x
regional-asia-south1 孟買 <0x
regional-asia-south2 德里 <0x
regional-asia-southeast1 新加坡 <0x0
regional-asia-southeast2 雅加達 <0
regional-asia-southeast3 曼谷 <0x
regional-australia-southeast1 雪梨 <0x
regional-australia-southeast2 墨爾本 <0
中東地區
regional-me-central1 杜哈 <0x
regional-me-central2 達曼 <0x
regional-me-west1 特拉維夫 <
非洲
regional-africa-south1 約翰尼斯堡 <

複製

基本區域設定包含三個讀取/寫入備用資源。每個 Spanner 修改作業都需要寫入仲裁,而寫入仲裁是由多數投票副本組成。在區域設定中,寫入仲裁是由三個副本中的兩個組成。如要進一步瞭解領導者區域和投票副本,請參閱「複製」。

您可以建立自訂區域執行個體設定,並新增選用的唯讀副本。唯讀副本有助於擴充讀取作業,並支援低延遲的過時讀取作業。這些唯讀副本不會參與寫入仲裁。 備用資源不會影響區域執行個體的Spanner >= 99.99% 服務水準協議。 您可以將「選用區域」欄下方列出的位置新增為選用的唯讀副本。如果沒有看到所選的唯讀副本位置,可以要求新的選用唯讀副本區域。詳情請參閱「唯讀副本」。

區域設定的效能最佳做法

為獲得最佳成效,請遵循下列最佳做法:

  • 設計結構定義,避免資源使用率不均和其他效能問題。
  • 將重要運算資源放在與 Spanner 執行個體相同的區域。
  • 佈建充足的運算資源,將高優先順序總 CPU 使用率維持在 65% 以下。
  • 如要瞭解每個 Spanner 節點的處理量,請參閱「區域設定的效能」。

雙區域設定

雙區域設定可讓您在單一國家/地區的兩個區域中,跨多個可用區複製資料庫資料,如執行個體設定所定義。

雙區域設定可執行下列操作:

  • 在單一國家/地區的兩個區域提供讀取服務。
  • 符合資料落地規定。
  • 提供比區域設定更高的可用性和服務水準協議。

Spanner 在澳洲、德國、印度和日本提供雙區域設定。

如要瞭解每個 Spanner 節點的處理量,請參閱「雙區域設定的效能」。

可用的設定

Spanner 提供下列雙區域執行個體基本設定:

基本設定名稱 資源位置 區域
dual-region-australia1 au (澳洲) 雪梨:australia-southeast1L、2RW+1W
墨爾本:australia-southeast2 2RW+1W
dual-region-canada1 ca (加拿大) 多倫多:northamerica-northeast2 L、2RW+1W
蒙特婁:northamerica-northeast1 2RW+1W
dual-region-germany1 de (德國) 柏林:europe-west10 L、2RW+1W
法蘭克福:europe-west3 2RW+1W
dual-region-india1 in (印度) 孟買:asia-south1 L、2RW+1W
德里:asia-south2 2RW+1W
dual-region-japan1 jp (日本) 東京:asia-northeast1 L、2RW+1W
大阪:asia-northeast2 2RW+1W

優點

雙區域執行個體的主要優點如下:

  • 可用性達 99.999%:在同一國家/地區的兩個區域之間,高於 Spanner 單區域設定提供的 99.99% 可用性。

  • 資料分配:自動在兩個區域之間複製資料,並保證同步一致性。

  • 資料落地規定:符合「可用設定」中雙區域設定所列國家/地區的資料落地規定。

複製

雙區域包含六個副本,每個區域各三個。其中一個區域會指定為預設主要區域 (列於上表)。您可以變更資料庫的主要區域。每個區域都有兩個讀寫備用資源和一個見證備用資源。如果兩個區域都運作正常,且以雙區域設定執行,則仲裁會在所有六個副本之間建立。每個區域至少需要兩個副本,才能形成法定人數並提交交易。

容錯移轉和容錯回復

建立雙區域設定後,您可以在「系統洞察」資訊主頁上查看「雙區域仲裁健康狀態時間軸」指標。這項指標僅適用於雙區域設定。這項指標會顯示三個仲裁的健康狀態:

  • 雙區域仲裁:Global
  • 每個區域的單一區域仲裁 (例如 Sydney 和 Melbourne)

如果發生服務中斷情形,時間軸會顯示橘色長條。將滑鼠游標懸停在該圖示上,即可查看中斷的開始和結束時間。

如要縮短復原時間目標 (RTO),建議監控或設定雙區域仲裁健康狀態時間軸指標的快訊。這項指標可協助您在發生區域故障時,自行管理容錯移轉決策。觸發執行個體容錯移轉後,容錯移轉通常會在 1 分鐘內完成。

Spanner 也支援 Google 管理的自動容錯移轉,從首次偵測到故障到完成容錯移轉,最多可能需要 45 分鐘。由於 Google 會監控整個服務,因此 RTO 較長。我們需要收集額外信號,驗證整個區域是否受到影響,並確認影響範圍是否達到區域層級。這也能確保容錯移轉後,設定中的使用者能獲得更優質的整體服務。

如要手動容錯移轉及容錯回復,請參閱「變更雙區域仲裁」。

手動容錯移轉和容錯回復決策時,請考量下列事項:

  • 如果這三個法定人數都正常,則無須採取任何行動。

  • 如果其中一個區域顯示服務中斷,可能表示區域性服務中斷。這可能會導致在雙區域仲裁中執行的資料庫可用性降低。由於無法建立法定人數,交易最終會逾時,因此寫入作業也可能會失敗。使用「System insights」(系統深入分析) 資訊主頁,觀察資料庫中的錯誤率和延遲時間。如果錯誤率或延遲時間增加,建議您容錯移轉,也就是將雙區域仲裁從雙區域變更為仍正常的區域。中斷的區域恢復正常後,您必須回復,將雙區域仲裁從單一區域變更為雙區域。Google 偵測到區域服務中斷時,會自動執行容錯移轉和容錯回復。如果偵測到中斷情形,您也可以手動容錯移轉。不過,如果您執行手動容錯移轉,請務必記得手動容錯回復。

  • 如果雙區域仲裁顯示中斷,但兩個單一區域都正常運作,則表示有網路分割問題。這兩個區域無法再彼此通訊,因此即使整體系統不正常,兩者仍會顯示正常。在這種情況下,建議您容錯移轉至預設主要區域。網路分割問題解決後,雙區域仲裁恢復正常,您必須手動進行容錯回復。

雙區域可提供零復原點目標 (RPO),因為區域中斷或發生網路分割問題時,不會有資料遺失。

如要查看雙區域仲裁的模式 (單一或雙重),請參閱「檢查雙區域仲裁」。

容錯移轉和容錯回復最佳做法

容錯移轉和容錯回復最佳做法包括:

  • 如果沒有發生區域故障或中斷,請勿容錯移轉至單一區域。容錯移轉至單一區域會增加整體系統無法使用的可能性 (如果該單一區域發生故障)。
  • 選取容錯移轉區域時,請務必謹慎。如果選擇錯誤的容錯移轉區域,資料庫將無法使用,且必須等到該區域恢復連線後才能復原。如要驗證,您可以使用 Bash 指令碼,在執行容錯移轉前檢查單一區域的健康狀態。
  • 如果發生問題的區域是預設主要區域,請在執行容錯移轉後變更預設主要區域為容錯移轉區域。確認兩個區域都恢復正常後,請執行容錯回復,然後將主要區域改回原先的主要區域。
  • 如果您執行手動容錯移轉,請記得手動容錯回復。

限制

您無法建立自訂雙區域執行個體設定。您無法在雙區域執行個體設定中新增唯讀副本。

多區域設定

Spanner 單區域設定會在單一區域內的多個可用區之間複製資料。不過,在下列情況下,區域設定可能不是最佳選擇:

  • 應用程式通常需要從多個地理位置讀取資料 (例如,同時為北美洲和亞洲的使用者提供資料)。
  • 寫入作業的來源位置與讀取作業不同 (例如,北美洲有大量寫入工作負載,歐洲有大量讀取工作負載)。

多區域設定可執行下列操作:

  • 服務來自多個區域的寫入作業。
  • 在區域故障時維持可用性。
  • 提供比區域設定更高的可用性和服務水準協議。

多區域設定可讓您依照執行個體設定的定義,在多個區域的多個可用區中複製資料庫。每個多區域設定都包含兩個讀寫區域。讀寫區域包含兩個位於不同可用區的讀寫副本。這些副本可讓您從設定區域中或鄰近的多個位置讀取資料,延遲時間更短。

不過,在多區域設定中,法定人數 (讀取/寫入) 副本會分散在多個區域,因此需要取捨。當這些副本彼此通訊以形成寫入仲裁時,您可能會注意到額外的網路延遲。讀取作業不需要多數決。因此,您的應用程式可以在更多位置加快讀取速度,但寫入延遲時間會稍微增加。詳情請參閱「寫入和讀取作業中的副本角色」。

可用的設定

Spanner 提供下列基本多區域執行個體設定。如要要求下列表格未列出的選用唯讀副本區域,請填寫這份要求表單。請注意,我們會根據這些要求評估未來區域的需求,因此可能不會直接回覆您的要求。

一個大洲

基本設定名稱 資源位置 讀寫區域 唯讀地區 見證區域 選填區域
asia1 全球 東京:asia-northeast1 L、2R
大阪:asia-northeast2 2R
無 首爾:asia-northeast3 唯讀:
us-west1 1-OR
us-east5 1-OR
asia2 A 全球 孟買:asia-south1 L、2R
德里:asia-south2 2R
新加坡:asia-southeast1 1R
無 無
eur3 歐盟 (eu) 比利時:europe-west1 L、2R
荷蘭:europe-west4 2R
無 芬蘭:europe-north1 唯讀:
us-central1 1-OR
us-east4 1-OR
eur5 全球 倫敦:europe-west2 L、2R
比利時:europe-west1 2R
無 荷蘭:europe-west4 唯讀:
us-central1 1-OR
us-east1 1-OR
eur6 全球 荷蘭:europe-west4 L、2R
法蘭克福:europe-west3 2R
無 蘇黎世:europe-west6 唯讀:
us-east1 2-OR
eur7 歐盟 (eu) 米蘭:europe-west8 L、2R
法蘭克福:europe-west3 2R
無 杜林:europe-west12
nam3 us (美國) 北維吉尼亞州:us-east4 L、2R
南卡羅來納州:us-east1 2R
無 愛荷華州:us-central1 唯讀:
asia-south1 1-OR
asia-southeast1 1-OR
asia-southeast2 1-OR
europe-west1 1-OR
europe-west2 1-OR
europe-west4 1-OR
europe-west9 1-OR
us-east5 1-OR
us-west1 1-OR
us-west2 1-OR
us-west4 1-OR
us-west8 1-OR
nam6 us (美國) 愛荷華州:us-central1 L、2R
南卡羅來納州:us-east1 2R
奧勒岡州:us-west1 1R
洛杉磯:us-west2 1R
奧克拉荷馬州:us-central2
nam7 us (美國) 愛荷華州:us-central1 L、2R
北維吉尼亞州:us-east4 2R
無 奧克拉荷馬州:us-central2 唯讀:
us-east1 2-OR
us-south1 1-OR
us-west1 1-OR
europe-west1 2-OR
nam8 us (美國) 洛杉磯:us-west2 L、2R
奧勒岡州:us-west1 2R
無 鹽湖城:us-west3 唯讀:
asia-northeast1 2-OR
asia-southeast1 2-OR
europe-west2 2-OR
europe-west3 2-OR
us-east5 1-OR
nam9 us (美國) 北維吉尼亞州:us-east4 L、2R
愛荷華州:us-central1 2R
奧勒岡州:us-west1 2R 南卡羅來納州:us-east1
nam10 us (美國) 愛荷華州:us-central1 L、2R
鹽湖城:us-west3 2R
無 奧克拉荷馬州:us-central2 唯讀:
us-east4 1-OR
nam11 us (美國) 愛荷華州:us-central1 L、2R
南卡羅來納州:us-east1 2R
無 奧克拉荷馬州:us-central2 唯讀:
us-west1 1-OR
nam12 us (美國) 愛荷華州:us-central1 L、2R
北維吉尼亞州:us-east4 2R
奧勒岡州:us-west1 2R 奧克拉荷馬州:us-central2
nam13 us (美國) 奧克拉荷馬州:us-central2 L、2R
愛荷華州:us-central1 2R
無 鹽湖城:us-west3
nam14 全球 北維吉尼亞:us-east4 L、2R
蒙特婁:northamerica-northeast1 2R
無 南卡羅來納州:us-east1
nam15 us (美國) 達拉斯:us-south1 L、2R
北維吉尼亞州:us-east4 2R
無 愛荷華州:us-central1 唯讀:
us-central2 1-OR
us-east1 1-OR
us-west3 1-OR
nam16 us (美國) 愛荷華州:us-central1 L、2R
北維吉尼亞州:us-east4 2R
無 哥倫布:us-east5 唯讀:
us-west2 2-OR
nam22 us (美國) 哥倫布:us-east5 (L、2R)
南卡羅來納州:us-east1 (2R)
無 北維吉尼亞州:us-east4 唯讀:
us-west1 1-OR
nam23 us (美國) 愛荷華州:us-central1 L、2R
拉斯維加斯:us-west4 2R
無 達拉斯:us-south1 唯讀:
asia-northeast1 1-OR
australia-southeast2 1-OR
europe-west1 1-OR
europe-west3 1-OR
nam24 A us (美國) 北維吉尼亞州:us-east4 L、2R
奧勒岡州:us-west1 2R
無 愛荷華州:us-central1

橫跨三大洲

基本設定名稱 資源位置 讀寫區域 唯讀地區 見證區域 選填區域
nam-eur-asia1 全球 愛荷華州:us-central1 L、2R
奧克拉荷馬州:us-central2 2R
比利時:europe-west1 2R
臺灣:asia-east1 2R
南卡羅來納州:us-east1 唯讀:
us-west2 1-OR
nam-eur-asia3 全球 愛荷華州:us-central1 L、2R
南卡羅來納州:us-east1 2R
比利時:europe-west1 1R
荷蘭:europe-west4 1R
臺灣:asia-east1 2R
奧克拉荷馬州:us-central2
  • L:預設主要區域。詳情請參閱「修改資料庫的主要區域」。

  • 1R:區域中的一個副本。

  • 2R:區域中的兩個副本。

  • 2RW+1W:區域中的兩個讀寫備用資源和一個見證備用資源。

  • 1-OR:一個選用副本。您可以建立自訂區域執行個體設定,並新增一個選用的唯讀副本。詳情請參閱「建立自訂執行個體設定」。

  • 2-OR:最多兩個選用副本。您可以建立自訂區域執行個體設定,並新增一或兩個選用的唯讀副本。建議您新增兩個 (如有可能),以維持低讀取延遲時間。詳情請參閱「建立自訂執行個體設定」。

  • A:這個執行個體設定受到許可清單限制。如要取得存取權,請與技術客戶經理聯絡。

多區域執行個體設定的資源位置會決定該設定的災難復原可用區保證。定義靜態資料的儲存位置。

優點

多地區執行個體提供以下主要優點:

  • 可用性達 99.999%,高於 Spanner 區域設定提供的 99.99% 可用性。

  • 資料分配:Spanner 會自動在區域之間複製資料,並保證同步一致性。這樣一來,資料就能儲存在使用位置,減少延遲並提升使用者體驗。

  • 外部一致性:即使 Spanner 會在地理位置遙遠的地區之間進行複製,您仍可將 Spanner 視為在單一機器上執行的資料庫。系統保證交易可序列化,且資料庫中的交易順序與用戶端觀察到的交易提交順序相同。外部一致性比其他產品提供的「同步一致」更有保障。如要進一步瞭解這項屬性,請參閱「TrueTime 和外部一致性」。

複製

每個基本多區域設定都包含兩個指定為讀取/寫入區域的區域,每個區域都包含兩個讀取/寫入備用資源。其中一個讀寫區域會指定為預設主要區域,也就是包含資料庫主要備用資源的區域。Spanner 也會在稱為「見證區域」的第三個區域中放置見證副本。

每當用戶端對資料庫發出修改作業時,系統會形成寫入仲裁,其中包含預設主要區域的其中一個副本,以及另外四個投票副本中的任意兩個。 (仲裁可以由構成設定的兩個或三個地區中的備用資源形成,視其他哪些備用資源會參與投票而定)。除了這五個投票備用資源外,部分基礎多區域設定也包含唯讀備用資源,可提供低延遲讀取服務。含有唯讀副本的區域稱為「唯讀區域」。

一般而言,多區域設定中的投票區域會放置在地理位置相近處 (相距不到一千英里),形成低延遲的法定人數,以利快速寫入 (瞭解詳情)。不過,這些區域仍相距夠遠 (通常至少有數百英里),可避免協調式故障。此外,如果用戶端應用程式位於非領導者區域,Spanner 會使用領導者感知路由,動態將讀寫交易路由至資料庫,以減少延遲。詳情請參閱「Leader-aware routing」。

您可以建立自訂多區域執行個體設定,並視需要加入唯讀副本。您建立的任何自訂唯讀副本都無法納入寫入仲裁。您可以將「選用區域」欄列出的位置新增為選用的唯讀副本。如果沒有看到所選的唯讀副本位置,可以要求新的選用唯讀副本區域。詳情請參閱「唯讀副本」。

多區域設定的效能最佳做法

為獲得最佳成效,請遵循下列最佳做法:

  • 設計結構定義,避免資源使用率不均和其他效能問題。
  • 如要盡量縮短寫入延遲時間,請將寫入量大的工作負載運算資源,放在預設主要區域內或附近。
  • 如要將預設主要地區以外的讀取效能最佳化,請至少使用 15 秒的過時程度。
  • 為避免工作負載過度依賴單一區域,請將重要運算資源部署在至少兩個區域。建議您將這些區域放在兩個不同的讀寫區域旁,這樣單一區域發生中斷時,就不會影響整個應用程式。
  • 提供充足的運算資源,將每個區域的高優先順序總 CPU 使用率維持在 45% 以下。
  • 如要瞭解每個 Spanner 節點的處理量,請參閱「多區域設定的效能」。

移動執行個體

您可以將 Spanner 執行個體從任何執行個體設定移至其他執行個體設定,包括區域和多區域設定。遷移執行個體不會造成停機,且 Spanner 在遷移期間仍會提供交易保證,包括同步一致。

如要進一步瞭解如何遷移 Spanner 執行個體,請參閱「遷移執行個體」。

設定預設主要區域

如要變更資料庫預設主要區域的位置,讓連線用戶端更靠近該區域,以減少應用程式延遲,您可以變更使用雙區域或多區域設定的任何 Spanner 執行個體的主要區域。如要瞭解如何變更主要區域的位置,請參閱「變更資料庫的主要區域」。只有雙區域或多區域設定中的讀寫區域,才能成為資料庫的預設主要區域。

主要區域負責處理所有資料庫寫入作業,因此如果大部分流量來自某個地理區域,您可以將主要區域移至該區域,以減少延遲。更新預設領導者區域的成本不高,且不會涉及任何資料移動。新值會在幾分鐘後生效。

變更預設主要區域是結構定義變更,這項作業需要長時間執行。如有需要,您可以取得長時間執行的作業狀態。

取捨:區域、雙區域和多區域設定

設定 可用性 延遲時間 費用 資料位置
地區性 99.99% 單一區域內的寫入延遲時間較短。 費用較低;請參閱定價。 啟用地理資料治理。
雙區域 99.999% 兩個地理區域的讀取延遲時間較短,寫入延遲時間略有增加。 費用較高;請參閱定價。 在單一國家/地區的兩個區域中分配資料。
多區域 99.999% 多個地理區域內的讀取延遲時間較短;寫入延遲時間略有增加。 費用較高;請參閱定價。 將資料分布到設定中的多個地區。

後續步驟