Hello Hassan,
Apologies for delay, as usually replies comes after a day so I thought to check if you need further assistance.
Regards to answer to your queries.
1: Yes its OK to have one powerful Database server to serve for databases for schools, in fact in multiple Moodle hosting environment, I would always recommend keeping Database server independent.
2: for 1000 users (assuming this figure is concurrent & signed in users), Dual Core CPU, 8GB would be enough, as figure of 1000 concurrent doesn't means that each of 1000 users are clicking the same button at the very same instance.
3: RAID stands for Redundant Array of Inexpensive/Independent Discs (some call it inexpensive some call it independent), and there are 4 types of RAID configurations commonly used
RAID-1(Mirroring) : requires 2 discs of same size, and data is replicated to both discs, so disc reading is from both discs making it a speedy option, as data is replicated so essentially disc space is halfed, for example if you have 2 1TB drives, then space you'll get is 1TB as data is mirrored over to other drive, if in case one drive fails, you are safe as data is still on to other drive.
RAID-0 (stripping), in this case, same 2 drives are required, and data is equally distributed over to both drives, so for example if you saved one file of 100K, then 50K will be moved to one drive and other 50K to other drive, this increases the speed of throughput and doubles the space, so if you have 2 1TB drives, the actual space you'll get will be 2TB (2 x 1TB), bad thing about this RAID is, if one drive fails, you lost data as other drive will have half of data. benefit is tremendous read/write speeds
RAID-5 (Parity) - required minimum 3 drives, and each drive will have a parity bit, actual drive space you'll get is 2/3rd of drives, so if you have 3 x 1TB drives, actual space you'll get is 2TB, very good reading speeds but poor writing speeds as parity bit has to be equalized over to three drives. if your database has more reads then writes, then you can implement this RAID-5
RAID-10 (actually is RAID-1 and RAID-0) Mirroring and Stripping - I dont have to explain this, as RAID 1 and RAID 0 are already explained above, so you can expect tremendous speed and data safety as well as Data is stripped and then mirrored, it requires 4 drives minimum (with multiples of 4, so 4, 8, 12, 16 drives etc), it allows 1 drive to fail in array, so essentially with 2 drives failures out of 4 (one in each array) you can safely operate server without loss. RAID10 is recommended where data reads and writes are fast. the drive space you get is 1/2 so for example if you have 4 drives with 1TB capacity each, actual space you'll get will be 2TB.
RAID configurations can be implemented in 2 ways, SOFTWARE and HARDWARE, with software RAID, it comes as part of Operating System and doesn't require any additional hardware, small issue is, it takes some portions of CPU and RAM, Hardware RAID as name suggests, are setup on a independent RAID card, they have their own CPU and RAM so they leave system resources free.
Where I mentioned setting up RAID in one box, means, you can setup a RAID card with 4 ports, assign 2 ports for RAID-1 for Web server/Application server and Assign 2 ports for RAID-1 to Database separately. if you want to go bit further, then 6 ports RAID card, with RAID-1 assigned to O/S and Swap file, RAID-1 assigned to webserver and moodle files, and RAID-1 to Database.....want to get even further, then RAID-1 for O/S & Swap, RAID-1 for Webserver in SATA 7200RPM discs or even better if SCSi (10K RPM or 15K RPM )discs are used and RAID-4 for Database in SSD (that will require 8-port Raid card and 8 discs in all)
4: You dont have to be fixed in offering VM's to schools, as the benefit of VM is, resource allocation with few clicks, so take estimate and start with offering say for example dual core CPU, 4GB RAM etc and as they start growing (or require more resources), simply allocate them the resources.
In addition, of hardware, I will recommend using LiteSpeed servers as opposed to Apache, though Apache is free but adding a bit to the cost will double your Moodle performance rather than allocating resources, so for example if you have allocated a dual core CPU and 4GB ram to a school, if you need upgrade, rather than allocating another few cores and additional RAM, just add 1-core CPU license to a dual core CPU, or a 2 core CPU license to a quad core CPU, and see for yourself the performance boost.
regarding testing your moodle installations, there is test moodle instance available inside Moodle (not to be used on Production server), apart there are other options available, Tim Hunt of Open University will be able to assist you in testing Moodle load impacts more as he manages Moodle users in terms of 100,000 or more. or you can always open another thread regarding the Moodle Load Testing.