📜 ⬆️ ⬇️

Features of migration from RISC to x86 in Russia: now we are kept by the old banking software of the DOS and Netware times



I suspect that quite a significant part of readers of the post is younger than these operating systems. But our Russian (and not only) software still runs on them in the bins of the Motherland. Yes, and you probably no-no, yes, saw DOS-butt in Sberbank's workplaces or in hospitals.

There are some Power-machines that are designed for calculating large and heavy pieces. They are working butt, which can not be run in a normal cluster, as a rule - banking systems and all sorts of exchange items. The problem is that modern hypervisors create a virtual machine no more than a physical server where they are located. And one physical x86 server is too small for such tasks. Therefore, the x64 architecture (RISC) is used.
')
The same in total system performance on x86 and x64 differ in price by tens and hundreds of times. It would seem that there are no problems: you need to rewrite the software so that it can work in hundreds of streams and get into a cluster or a cloud, right?

Yeah, now! Programmers who wrote this, no longer. Source codes are usually lost or written in languages ​​of the Mesozoic times. Even the documentation is usually not. So you know what we do? We wrap the hypervisor in the hypervisor. Oh, this is a separate song. I'll tell you now.

Mammoth Pieces


Yes, damn it, wrap the hypervisor in a hypervisor. A typical task is to migrate something to the same Huawei x86. In general, there are only three commercial architectures that allow to get really very large clusters that are well suited for such tasks. These are Superdom, Fujitsu cluster and Huawei cluster. Separately, there are more solutions, but these three architectures are similar and close to optimal in terms of scaling. In our case, Huawei was chosen for the project for two reasons:

- The price for a given stability.
- Compatibility with old OS at the level of drivers, etc., that is, the possibility of migration.



With the old - this means last year of release. But the iron development team is now continuing to drive tests and adds compatibility with more and more older operating systems that are still used in banks and industry around the world.

The queue for the test implementation of Huawei are two major customers, so the topic is very hot.

Now the disposition. The infrastructure is well established for customers, bugs are caught, compatibility has been achieved, so the main rule of the developer is valid: “do not touch”. In banks it is oh so important. Take and upgrade to the new version - this is a quest of a million sufferings.

In this case, note that this does not mean that they do not tolerate anything. The same bases with AIX P-series on Linux x86, they very quickly rework and roll - this is a proven procedure in many banks.

Pain in the butt and DBMS. External NIXs may not always work with DBMS due to the difference between stored procedures and a heap of other compatibility issues. As a result, finishing begins to a consistent state. If the RISC machines have long been established in this area, then the developers of x86 clusters in the novice area have not come to all the rakes yet. The main thing is that the features of the deeply old NIX do not support, and in the banks or industry there are sometimes quite old versions.

And at that very moment we are starting to wrap the hypervisor in a hypervisor, Johnny! Not always, of course, but only when it is decided that it is better not to touch this particular butt, otherwise everyone will die. It looks like this:

  1. We find the latest stable version of the OS, where the butt works. For you to understand all the pain - sometimes it is Novell Netware 4.x. This is where the main network protocol is IPX / SPX, and TCP / IP is viewed as a fantasy from the future, but supported just in case. In one bank, this miracle is still working with archive data. And sometimes it is really needed for a deep search in financial data.
  2. We find a hypervisor that supports this stable version of the OS and the butt. We start in it. It turns out, for example, a certain old Linux.
  3. We find the hypervisor (most likely already fresh Vmvara), which is supported by this old Linux. We start VM with VM on it.

It turns out the house that Jack built.

Understandably, the butt suffers from this in performance, but there is no place to go. I know one story about trying to leave Netwara. 10 years as developers simply do not. All vaunted virtualizers do not support and never. In the end, somehow managed to rise from 4 to 6.5 then it is already in the hypervisor.

By the way, if you think that these are all very rare cases, take a look at the printers in the bank branches where you are. There is a chance to meet the matrix printers on the connection to the LPT-ports. These are not even universal COM ports, no, which can be found today in a mutated form of keyboard sockets. Good old LPT! In the same banks, reports are submitted on 3.5-inch floppy disks. Even we have a pair of disk drives for hot swapping in stock. There are still super-modern ZIP-drives. Well at least 5.25 and 8 inches have not yet met in practice. Although the "gramophone record" itself - a flexible magnetic disk of the format of 8 inches in an envelope - I also met in the storages of spare parts. Disk drives are not.

From the modern history in the regions one can often find old Kompakov servers everywhere. Which 10 years ago were delivered. This is 2004, before the merger with HP.

And what about Huawei?


And their development completes the driver and stuff. The iron manufacturer must support the target axis in hardware. The old x86 were on Intel chipsets - these are small cars. Hullat has 16 cores and above. And they have iron for settling non-standard. Therefore, not everything is as simple as it may seem. The same memory managers are very nontrivial for older systems.

As a result, on the release of the new server at the beginning of the list of compatibility from one OS. Later finish. Now they want more deep NIX. The choice is simple: either the system software rework, or work with the operating system. Therefore, the latter is simpler, because the same Centos is free in banks (and not even Redhat), and if we give compatibility, x86 clients will immediately become more.

Naturally, migration can lead to a rewriting of the entire system. And nobody wants this especially. Most often, developed are lost, because the system is 11 years old, there is no relevant documentation or it is not kept. Finding at least integration points is a standard problem. Stored procedures also add joy. And finally, 90% of the dialogue:

- Do you have a procedure for commissioning?
- Of course!
- Do you need documentation on it?
- Absolutely.
- So, and this procedure is observed?
- No, of course, why are you crazy?

The bottom line - the documented procedure is very complicated, and no one abides by, leave the system in test operation.

So only transition to superclusters with compatibility with old OS.

Tests


For 2 months we tested for customers 5 platforms. In fact, there is nothing to examine, questions only about stability and the possibility of migration. No synthetic tests, because the results each time are very different from the real ones. And in both directions.

Future


In the distant future, perhaps there will be no such dances with a tambourine. The main problem when we need vertical scalability (an increase in the number of processors and memory in one machine), since a single Oracle database cannot be divided into several parts, it should be single. And they want to do everything to go into the clouds and just stick the blades for fun. Now the big DBMS on AIX are uniform and very fat. Therefore, the vertical scale - for x86 now it is 32 processors, 16 cores each.

Now everyone is going in the direction of in-memory-computing, so they will be parallelized anyway. The question is when.

Source: https://habr.com/ru/post/334598/


All Articles