שכפול נתונים
שכפול האחסון

שכפול פעיל (בזמן אמת) של האחסון מיושם בדרך כלל על ידי הפצת עדכונים של התקן הבלוקים של הדיסק הלוגי לכמה דיסקים פיזיים כך שניתן לשכפל את כל מערכות הקבצים הנתמכות על ידי מערכת  משום שקוד מערכת הקבצים עובד מעל לשכבה זו. יכולת זו יכולה להיות מיושמת בחומרה (בבקר מערך הדיסקים, ב־HBA או בהתקן רשת) או בתוכנה (במנהל ההתקן).
השיטה הבסיסית ביותר למימוש השכפול של האחסון היא שיקוף דיסק והיא זו שנמצאת לרוב בשימוש עבור דיסקים המחוברים ישירות לשרת (DAS). ההבדלה בין שיקוף לשכפול היא לוגית יותר מאשר מעשית, כאשר שיקוף מתייחס לרוב לפעולה מקומית (ולא על שימוש בשכפול מרחוק) ולעומת זאת שכפול ניתן לביצוע בכל נקודה ברחבי הרשת כך שאת הדיסקים ניתן למקם במקומות רחוקים פיזית.
שכפול מרוחק נועד למנוע את הנזק שעלול להיגרם במקרה של כשלים מקומיים או אסונות ולשפר את הזמינות של הנתונים, בדרך כלל על ידי שימוש במודל ראשי-משני.
פתרונות אלו מסווגים לרוב לפי טיפולם בפעולות כתיבה:
שכפול סינכרוני - מימוש של "אפס אובדן נתונים" באמצעות טיפול בפעולות הכתיבה האטומיות, כלומר הכתיבה או מתבצעת בשלמותה בשני הצדדים (כלומר התקבל אישור הן מהאחסון המקומי והן מהמרוחק) או בכלל לא. רוב היישומים יחכו עד להשלמת פעולת הכתיבה לפני שימשיכו בעבודה ולכן פעולה זו עשויה להקטין באופן ניכר את ביצועי המערכת, עם זאת מערכות מסדי נתונים אינן סובלות לרוב מבעיה זו (הגם שהתוכנה שמשתמשת בהן עדיין עשויה לסבול ממנה). הביצועים של גישה זו מתדרדרים באופן פרופורציונלי למרחק וזאת כתוצאה מהעיכוב הנגרם על ידי מגבלת מהירות האור - למשל במרחק 10 ק"מ, הזמן המהיר ביותר לקבלת התגובה הוא 67 מיקרו שנייה ואילו במערכות המקובלות כיום (2009) כל המטמון המקומי נכתב בזמן של כ־10-20 מיקרו שניות. הכישלון של שכפול סנכרוני או אפילו רק אובדן רוחב פס מספיק (על פי ההגדרה של המערכת) גורמת לאי ביצוע של כל פעולת הכתיבה ולכן התוצאה המעשית היא הקפאת מערכת האחסון המקומית ולמעשה זאת המשמעות של הבטחת אפס אובדן נתונים. עם זאת, מערכות מסחריות רבות לא יקפאו במצב מסוכן כזה, אלא פשוט ימשיכו בפעולת הכתיבה המקומית ויאבדו את המטרה הרצויה - אי צורך בשחזור.
שכפול אסינכרוני - כתיבה נחשבת כמושלמת כשהאחסון המקומי ביצע אותה. האחסון המרוחק מתעדכן, אבל בדרך כלל עם פיגור קטן. רמת הביצועים משתפרת מאוד (יחסית לשכפול הסינכרוני), אבל במקרה של אובדן האחסון המקומי, האחסון המרוחק איננו מכיל בהכרח את העותק הנוכחי של הנתונים והנתונים העדכניים ביותר עלולים ללכת לאיבוד. עם זאת בתכנון נכון, המערכת המרוחקת עדיין נמצאת במצב עקבי כך שניתן להעלות אותה (גם אם באיבוד נתונים מסוים) במהירות רבה בהרבה מגיבוי על טייפ.
שכפול חצי סינכרוני - כתיבה נחשבת כמושלמת כשהאחסון המקומי ביצעה אותה והשרת מרוחק מאשר כי קיבל את המידע וכתב אותה לזיכרון או לקובץ יומן ייעודי. בפועל האחסון המרוחק לא ביצע כתיבה מיד אבל זאת מבוצעת באופן אסינכרוני והתוצאה היא ביצועים טובים יותר מאשר שכפול סינכרוני אבל עם סיכון מוגבר לכשל של כתיבה המרוחקת (אותו ניתן להקטין על ידי שמירה קפדנית על היומן).
שכפול של מידע בנקודת זמן - מבצע "הקפאה בזמן" של הנתונים באופן מקומי או מרוחק. השכפול יכול להתבצע בשתי שיטות עיקריות:
יצירת עותק של השינויים שנעשו על ידי המשתמש - שיטה זו יוצרת "מצביעים" הקובעים לאיזה נתון יש להתייחס כאשר קוראים את הנתונים - העותק הנוכחי או העותק השמור
העתקת הנתונים הנדרסים על ידי המשתמש לעותק נפרד - בדרך כלל בשילוב עם העתקה של כל הנתונים כאשר המערכת איננה בעומס ולעיתים גם עם העתקה חלקית מראש. העתקה כזאת מתבצע מתבצעת לרוב בשיטה "העתקה בזמן כתיבה" (Copy on Write) שמשתמשת במצביעים (בדומה לשיטה הקודמת) אולם ישנן גם אפשרויות אחרות, למשל WAFL של NetApp הכותבת את הנתונים החדשים (ולא הישנים) בצד
שלושת סוגי השכפולים הראשונים מחייבים שמירה על סדר הכתיבה של הנתונים וזאת מכיוון שמרבית התוכנות דורשות כתיבת הנתונים בסדר מסוים ובמיוחד למקרים של דריסת הנתונים הישנים על ידי נתונים מאוחרים יותר, בלי הקפדה זו הנתונים המאוחרים עשויים להיכתב בעוד קודמיהם לא נכתבו ובכך להשאיר את המערכת בלתי עקבית ולעיתים קרובות גם בלתי שמישה.